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;//判断是否是幸运数字
	}
	
}
相关推荐
慧都小妮子2 分钟前
不想频繁改 PLC?用 DeviceXPlorer Lua 脚本把产线业务逻辑放到 OPC Server 层
java·junit·lua·takebishi·dxpserver·设备数据采集软件·opc server
迦蓝叶14 分钟前
【开源自荐】JAiRouter:一个轻量级 AI 模型服务网关的开源实践
java·人工智能·spring·开源·llm-gateway·mass
Cloud_Shy61830 分钟前
解读《Effective Python 3rd Edition》:从练气到老魔(第六章 Item 40 - 43)
android·开发语言·人工智能·笔记·python·学习方法
装不满的克莱因瓶30 分钟前
掌握生成对抗网络(GAN)的优化目标与评估指标——从博弈函数到生成质量衡量体系
人工智能·python·深度学习·算法·机器学习
技术小黑33 分钟前
CNN算法实战系列06 | InceptionV1实现猴痘病识别
深度学习·算法·cnn·inceptionv1
半只小闲鱼35 分钟前
配置计划模块通用办公设备家具批复数合计计算
开发语言·python
swordbob1 小时前
缓存延迟双删的两种策略
java·缓存
凡人叶枫1 小时前
Effective C++ 条款08:别让异常逃离析构函数
java·linux·数据库·c++·嵌入式开发
云烟成雨TD1 小时前
Agent Scope Java 2.x 系列【4】模型层
java·人工智能·agent