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;//判断是否是幸运数字
	}
	
}
相关推荐
Anastasiozzzz21 分钟前
Java Lambda 揭秘:从匿名内部类到底层原理的深度解析
java·开发语言
骇客野人23 分钟前
通过脚本推送Docker镜像
java·docker·容器
刘琦沛在进步25 分钟前
【C / C++】引用和函数重载的介绍
c语言·开发语言·c++
机器视觉的发动机36 分钟前
AI算力中心的能耗挑战与未来破局之路
开发语言·人工智能·自动化·视觉检测·机器视觉
铁蛋AI编程实战39 分钟前
通义千问 3.5 Turbo GGUF 量化版本地部署教程:4G 显存即可运行,数据永不泄露
java·人工智能·python
HyperAI超神经44 分钟前
在线教程|DeepSeek-OCR 2公式/表格解析同步改善,以低视觉token成本实现近4%的性能跃迁
开发语言·人工智能·深度学习·神经网络·机器学习·ocr·创业创新
晚霞的不甘1 小时前
CANN 编译器深度解析:UB、L1 与 Global Memory 的协同调度机制
java·后端·spring·架构·音视频
SunnyDays10111 小时前
使用 Java 冻结 Excel 行和列:完整指南
java·冻结excel行和列
R_.L1 小时前
【QT】常用控件(按钮类控件、显示类控件、输入类控件、多元素控件、容器类控件、布局管理器)
开发语言·qt
Zach_yuan1 小时前
自定义协议:实现网络计算器
linux·服务器·开发语言·网络