蓝桥杯官网练习题(幸运数字)

问题描述

哈沙德数是指在某个固定的进位制当中,可以被各位数字之和整除的正整数。例如 126 是十进制下的一个哈沙德数,因为 (126)10​mod(1+2+6)=0;126 也是八进制下的哈沙德数,因为 (126)10=(176)8,(126)10mod(1+7+6)=0;同时 126 也是 1616 进制下的哈沙德数,因为 (126)10=(7e)16,(126)10​mod(7+e)=0。小蓝认为,如果一个整数在二进制、八进制、十进制、十六进制下均为哈沙德数,那么这个数字就是幸运数字,第 1 至第 10 个幸运数字的十进制表示为:1,2,4,6,8,40,48,72,120,126…。现在他想知道第 2023 个幸运数字是多少?你只需要告诉小蓝这个整数的十进制表示即可。

答案提交

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

运行限制

语言 最大运行时间 最大运行内存
C++ 1s 256M
C 1s 256M
Java 2s 256M
Python3 3s 256M
PyPy3 3s 256M

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
      int ans=0;
        for(int i=1;i<=999999999;i++){
          if(i%jinzhi(i,2)==0&&i%jinzhi(i,8)==0&&i%jinzhi(i,10)==0&&i%jinzhi(i,16)==0){
            ans++;
          }
          if(ans==2023){
            System.out.println(i);
            break;
          }
        }
    }
    public static int jinzhi(int i,int n){
      int sum=0;
      while(i>0){
        sum=sum+i%n;
        i=i/n;
      }
      return sum;
    }
}

猜你喜欢

转载自blog.csdn.net/s44Sc21/article/details/132838286