当前位置: 首页 > news >正文

每日一题(小白)模拟娱乐篇11

由题可知就是要求计算一个数字,可以整除10进制的每一位,亦可以整除8进制和16进制的每一位。要求找出第2023个能够在三个进制下同时被10进制整除的数字。

Java中已经封装了进制转换的方法,以下是一些常用的转换方法:👇

  • 十进制转二进制: int n = 18; String binaryString = Integer.toBinaryString(n); System.out.println(n + "的二进制是:" + binaryString);

  • 十进制转八进制: String octalString = Integer.toOctalString(n); System.out.println(n + "的八进制是:" + octalString);

  • 十进制转十六进制: String hexString = Integer.toHexString(n); System.out.println(n + "的十六进制是:" + hexString);

  • 十进制转任意进制: String base3String = Integer.toString(n, 5); System.out.println(n + "的五进制是:" + base3String);

我们可以从1开始寻找合适的数字,使用String转换为对应字符串截取每一位转换成int类型的值进行比较,但是这样显然太麻烦要做很多次的判断和比较。我们考虑直接模拟对应的方法使用一个函数获取每一位的值并且直接返回int类型。使用我们常用的十进制截取来比例:

    static int fn1(int num) {//获取每一位的值
    	int ans=0;
    	while (num>0) {
			ans+=num%10;
			num/=10;
		}
    	return ans;
    }

即将传进来的参数进行判断,每次对10取余就是个位上的值,取到个位上的值再用除法将个位去掉,依次进行。那么十进制除以10对十取余,我们只需要将10改为变量即可。

解题代码👇

    static int fn1(int num,int k) {//获取每一位的值
    	int ans=0;
    	while (num>0) {
			ans+=num%k;
			num/=k;
		}
    	return ans;
    }
    static boolean check(int x){//判断是否符合题意
    	if (x%fn1(x, 2)==0 && x%fn1(x, 8)==0 && x%fn1(x, 10)==0 && x%fn1(x, 16)==0) {
			return true;
		}else {
			return false;
		}
    	
    }
	public static void main(String[] args) {
		int count=2023;//从2023递减
		int i=1;//从1开始
		
		while (count>0) {
			if (check(i++)) {
				count--;
			}
			
		}
		System.out.println(i);
	}

代码留下了一个BUG,你能不能找出来是哪里有问题?        

相关文章:

  • 厦门网站建设uiwindows优化大师最新版本
  • 怎么自己做个免费网站吗网络营销理论基础
  • 车辆管理网站开发如何制作链接推广
  • 程序员自己做网站怎么能来钱中国站长之家官网
  • 网站建设公司名片网站内链优化
  • 如何利用网站新闻做推广网络营销的主要传播渠道是
  • Nginx接收https并内部转发成http
  • LORA+llama模型微调全流程
  • SQL DB 数据类型
  • UBUNTU编译dataline
  • 云渲染平台:创意产业的算力革命
  • Java面试34-Kafka的零拷贝原理
  • 讲一下resblock的跳跃连接,以及连接前后的shape保持(通过padding保持shape不变)
  • Maven+Spring实现后端开发
  • 【滑动窗口】3254. 长度为 K 的子数组的能量值 I
  • 【UE5 C++课程系列笔记】32——读Json文件并解析
  • 【GoLang】etcd初始化客户端时不会返回错误怎么办
  • Vue3命名规范指南
  • 数字内容体验进阶优化策略
  • OP2177运算放大器:高性能模拟信号处理的关键元件
  • 使用el-tab 实现两个tab切换
  • MCP协议java开发的servers,已开源
  • Linux 基础入门指南:用户管理、基本命令(一)
  • Golang标准库——runtime
  • Linux命令-iotop
  • 【Java】网络编程