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 小时前
【开题答辩全过程】以 工厂能耗分析平台的设计与实现为例,包含答辩的问题和答案
java·vue.js
喵了meme5 小时前
C语言实战4
c语言·开发语言
码界奇点5 小时前
Python从0到100一站式学习路线图与实战指南
开发语言·python·学习·青少年编程·贴图
智者知已应修善业5 小时前
【求中位数】2024-1-23
c语言·c++·经验分享·笔记·算法
9ilk5 小时前
【C++】--- 特殊类设计
开发语言·c++·后端
地平线开发者5 小时前
PTQ 量化数值范围与优化
算法·自动驾驶
sali-tec5 小时前
C# 基于halcon的视觉工作流-章68 深度学习-对象检测
开发语言·算法·计算机视觉·重构·c#
测试人社区-小明6 小时前
智能弹性伸缩算法在测试环境中的实践与验证
人工智能·测试工具·算法·机器学习·金融·机器人·量子计算
Spring AI学习6 小时前
Spring AI深度解析(9/50):可观测性与监控体系实战
java·人工智能·spring
罗西的思考6 小时前
【Agent】MemOS 源码笔记---(5)---记忆分类
人工智能·深度学习·算法