蓝桥杯:算法基础-立方尾不变

本文介绍了一种有趣的数学现象——立方尾不变数,即某些数字的立方末尾恰好是该数字本身。通过Java编程实现了一个算法,计算了10000以内符合此特征的正整数数量,结果显示共有36个这样的数字。

立方尾不变

有些数字的立方的末尾正好是该数字本身。
比如:1,4,5,6,9,24,25,…
请你计算一下,在10000以内的数字中(指该数字,并非它立方后的数值),符合这个特征的正整数一共有多少个。

分析:通过循环10000内的所有数字,进行拆分判断,计数。


public class demo2 {
	public static void main(String[] args) {
		//题意得到如果一个数跟这个数的立方后数的位数相等,则累加
		int sum = 0;//计数,统计个数
		for (long i = 1; i <=10000; i++) {//循环1-10000
			String ii = i+"";//转换为String类型
			String weis = i*i*i+"";//获取i的立方数并转为String类型
			String weif = "";//定义一个变量
			for (int j = 0; j < ii.length(); j++) {//从o开始循环ii.length()次
				weif+=weis.charAt(weis.length()-1-j);//从weis的最后取字符,放到变量中
			}
			String wei = "";//因为获取上一步的字符串是反着的所以,反转
			for (int j = weif.length()-1; j >=0 ; j--) {//反转字符串存到另外一个变量中
				wei+=weif.charAt(j);
			}
			if(wei.equals(ii)){//如果ii跟wei(尾数的字符串相同)
				sum++;//累加次数
			}
		}
		System.out.println(sum);
	}
}

输出结果为:
36

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值