蓝桥杯省赛真题2015年第六届Java本科B组
第02题——立方变自身
观察下面的现象,某个数字的立方,按位累加仍然等于自身。
1^3 = 1
8^3 = 512 5+1+2=8
17^3 = 4913 4+9+1+3=17
…
请你计算包括1,8,17在内,符合这个性质的正整数一共有多少个?
请填写该数字,不要填写任何多余的内容或说明性的文字。
思路
枚举验证,注意题没给范围,但是我们自己试一下发现范围并不大,我们可以先用99,999试一下(int最大为2147483647,如果使用9999会超出int范围),发现结果都一样的
代码
public class Question02 {
public static void main(String[] args) {
int count = 0;
for (int i = 1; i <= 999; i++) {
if (check(i)) {
count++;
}
}
System.out.println(count);
}
private static boolean check(int num) {
int res = num*num*num; //求立方
char[] cArr_res = Integer.toString(res).toCharArray(); //转为String后转为char数组
int sum = 0; //求和
for (int i = 0; i < cArr_res.length; i++) {
sum = Character.getNumericValue(cArr_res[i]) + sum;
}
if (sum == num) {
return true;
}
return false;
}
}
结果
答案为: 6