ブルーブリッジジャワのラッキーナンバー

質問 B: ラッキーナンバー

この質問の合計スコア: 5 ポイント

[問題の説明] ハーシャッド数とは、固定基数系のすべての桁の合計で割り切れる正の整数を指します。たとえば、(126)10 mod (1+2+6) = 0 であるため、126 は 10 進数のハーシャッド数ですが、(126)10 = (176)8, ( 126) であるため、126 は 8 進数のハーシャッド数でもあります。 10 mod (1 + 7 + 6) = 0; 同時に、(126)10 = (7e)16, (126)10 mod (7 + e) であるため、126 は 16 進数のハーシャッド数でもあります。 0 。Xiaolan は、整数が 2 進数、8 進数、10 進数、および 16 進数のハーシャッド数である場合、この数字は幸運な数字であり、1 番目から 10 番目までの幸運な数字の 10 進表現は 1 、 2 、 4、6、8 であると考えています。 、40、48、72、120、126... 今、彼は 2023 番目の幸運な数字が何であるかを知りたいと考えています。この整数の 10 進表現を Xiaolan に伝えるだけで済みます。

【解答提出】 穴埋め問題ですので、結果を計算して提出するだけです。この質問の結果は整数です。この整数は回答を送信するときにのみ入力してください。冗長な内容を入力すると得点は得られません。

答え: 215040


public class Main {

    static boolean f(int a, int h){
        int x = a;
        int sum = 0;
        int temp = 0;
        while(a != 0){
            temp = a % h;
            sum += temp;
            a /= h;
        }

        if(x % sum == 0)return true;
        return false;
    }


    public static void main(String[] args) {
        int t = 0;
        for (int i = 1; i <= 2023; i++) {
            while(true){
                t ++;
                if(f(t, 2) && f(t, 8) && f(t, 10) && f(t, 16)){
                    System.out.println("i="  +  i + " t=" + t);
                    break;
                }


            }

        }
    }
}

おすすめ

転載: blog.csdn.net/m0_61594817/article/details/130033829