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;//判断是否是幸运数字
	}
	
}
相关推荐
自动化监测Learner8 分钟前
Navicat Premium 17 中文版安装教程(2026最新版)
java·linux·数据库
江畔柳前堤14 分钟前
前台·中台·后台:2026年AI原生时代的架构全景图
开发语言·人工智能·算法·机器学习·架构·scala·ai-native
那个松鼠很眼熟w20 分钟前
4.Spring-Ai入门案例
java·人工智能·spring
计算机毕设定制辅导-无忧学长21 分钟前
《基于SpringBoot青年公寓出租管理系统的设计与实现》
java·vue.js·spring boot·青年公寓出租管理系统
Figo_Cheung24 分钟前
Figo基于RNC理论的宇宙演化第七纪元猜想
开发语言·php
文心快码BaiduComate1 小时前
2026 OPC x AI Coding 趋势案例交流会圆满落幕:一个人就一支研发团队
算法
ACM-moran1 小时前
条件显化(二分单峰函数+构造数列)
算法·推公式·整数三分
闻缺陷则喜何志丹1 小时前
【栈 运算系统】P3719 [AHOI2017初中组] rexp|普及+
c++·算法··洛谷·运算系统
泡海椒1 小时前
JQuick-Curl 二次开发:自定义解析器、扩展点开发指南,如何把框架能力真正变成团队资产
java·开发语言·okhttp·maven
疯狂打码的少年2 小时前
【数据库技术】多值依赖与第四范式(4NF)
数据库·笔记·算法