Java解决幸运数字

Java解决幸运数字

01 题目

  • 哈沙德数是指在某个固定的进位制当中,可以被各位数字之和整

    除的正整数。

  • 例如 126 是十进制下的一个哈沙德数,因为

    (126)10 mod (1+ 2+ 6) = 0;

    • 126 也是8进制下的哈沙德

      数,因为(126)10 =(176)8,(126)10 mod (1+7 + 6)

    • 同时 126 也是 16 进制下的哈沙德数,因为

      (126)10 = (7e)16,(126)10 mod (7 + e) = 0。

  • 小蓝认为,如果一个整数在二进制、八进制、十进制、十六进制下均为哈沙德数,那么这个数字就是幸运数字,第 1至第 10 个幸运数字的十进制表示为: 1,2,4,6,8,40,48,72,120,126...。

  • 现在他想知道第 2023 个幸运数字是多少?

  • 你只需要告诉小蓝这个

    整数的十进制表示即可

    答案提交

    这是一道结果填空的题,你只需要算出结果后提交即可。本题的

    结果为一个整数,在提交答案时只填写这个整数,填写多余的内

    容将无法得分

02 知识点

  • 函数
  • 循环

03 我的题解思路

java 复制代码
public class luckNumber {
	public static void main(String[] args) {
       int i=1;//从1开始循环
       int rs=0;//当前第rs个幸运数字
       while (true) {//利用死循环,直到找到答案
		if(checkMod(i, 2)&&checkMod(i, 8)&&checkMod(i, 10)&&checkMod(i, 16)) {
			rs++;
		}
		if(rs==2023) {//到达目标输出
			System.out.println(i);
			break;
		}
		i++;
       }
    }
	public static boolean checkMod(int n,int mod) {
		int mods=0;//用于记录取模后的和
		int rs=n;//记录初始值
		while(n>0) {
			mods+=n%mod;//取模
			n/=mod;//取余
		}
		return rs%mods==0;//判断是否是幸运数字
	}
	
}
相关推荐
扛麻袋的少年4 分钟前
7.Kotlin的日期类
开发语言·微信·kotlin
tuokuac5 分钟前
maven与maven-archetype-plugin版本匹配问题
java·maven
元亓亓亓6 分钟前
LeetCode热题100--101. 对称二叉树--简单
算法·leetcode·职场和发展
ankleless21 分钟前
Spring Boot 实战:从项目搭建到部署优化
java·spring boot·后端
钢铁男儿37 分钟前
Python 正则表达式实战:解析系统登录与进程信息
开发语言·python·正则表达式
不会学习?1 小时前
算法03 归并分治
算法
野生技术架构师1 小时前
2025年中高级后端开发Java岗八股文最新开源
java·开发语言
NuyoahC1 小时前
笔试——Day43
c++·算法·笔试
静若繁花_jingjing1 小时前
JVM常量池
java·开发语言·jvm
2301_821919922 小时前
决策树8.19
算法·决策树·机器学习