ブルーブリッジカップJavaBグループ - との特に数

【課題】内容
デジタル暁2,0,1,9の数字が1に、(先頭の0は含まない)は、非常に興味を含む
39、32にそのような番号1,2,9,10および40を含む、40 28の合計、と彼らは574です。
1からnまで、このようなすべての数字とどのくらいだろうか?
[入力形式の
入力ラインは、N 2つの整数を含んでいます。
[]出力フォーマット
整数を含む出力ラインを、条件を満足する数を表します。
[サンプル入力]
40
[出力]サンプル
574

[評価例]サイズ及び使用規則
例では20%の評価のために、1≤N≤10。
実施例中50%、1≤N≤100による評価のため。
実施例1 80%の評価のため≤N≤1000
評価のためにすべてのユースケース、1≤N≤10000。

この問題のようオーバーフローを防ぐために、万N、大量に使用されるタイプに連れて行くことができます。

インポートjava.math.BigIntegerの、
 インポートjava.util.Scanner; 

パブリック クラスメイン
{ 
    
    パブリック 静的 ブールファン(INT NUM)
    { 
        文字列S = String.valueOf(NUM); // 文字列INT変換
        CHAR [] =アートs.toCharArray(); //は、配列に文字列を変換
        するためのINT I = 0; I <s.length(); I ++ 
        { 
            IF(アート[I] == '2' ||アート[I] = = '0' ||アート[I] == ||アート[I] == '1' ' 9' 
            { 
                リターン trueに; 
            } 
        }
        リターン falseに; 
    } 

    公共の 静的な 無効メイン(文字列[]引数)
    { 
        // TODO自動生成されたメソッドスタブ 
        スキャナスキャナ= 新しい新しいスキャナ(System.in);
         INT A = scanner.nextInt(); 
        
        BigIntegerのSUM = 新しい新規のBigInteger( " 0 " );
         のためのINT I = 1; I <= A; I ++ 
        { 
            がiF(ファン(I))// か否かを判定するが2,0,1,0 
            { 
                文字列NUM = String.valueOf(I)。// 私は、文字列に変換されます
                一= BigIntegerの新しい新 AのBigInteger(NUM); // 大量にクラス数 
                SUM = sum.add(一); // 条件を満足する数蓄積する
                 // するSystem.out.println(SUM)を; 
                
            } 
        } 
        
        システム.out.print(SUM); 

    } 

}

 

おすすめ

転載: www.cnblogs.com/zkw123/p/11922452.html