立方尾不变(蓝桥杯真题)
问题描述
有些数的立方的末尾正好是该数字本身(例如1,4,5,6,9,24,25),请你计算一下10000以内,符合这个特征的正整数一共有多少个
思路解析
题目其实很简单,只要了解String中的substr方法,用该方法截断字符串,再将结果进行判断即可。
这里提供新的思路
例如:
4x4x4=64 将64除以10取余就可以得到4
24x24x24=13824 将13824除以100取余就可以得到24
即
该数字小于10就除以10
该数字大于10小于100就除以100
该数字大于100小于1000就除以1000
综上所述,代码如下
private static int count;
public static void main(String[] args) {
for(long i=1;i<=10000;i++) {
//i的立方比较大,这里用long型
if(i<10) {
if(i*i*i%10==i) count++;
}else if(i<100) {
if(i*i*i%100==i) count++;
}else if(i<1000) {
if(i*i*i%1000==i) count++;
}else if(i<10000) {
if(i*i*i%10000==i) count++;
}
}
System.out.println(count);
}
输出结果:36