一.分析
根据题意,55的三次方为6位数,即使每一位为9,每位相加最高只能为54,所以从55以后的数不可能满足条件,只需要循环前54个数.
二.代码
package 第七届蓝桥杯;
public class Main {
public static void main(String[] args) {
// TODO 自动生成的方法存根
int count = 0;
for(int i = 1; i < 55; i++){
int a = (int) Math.pow(i, 3);
String s = a + ""; //整形与字符串相加为字符串
char []c = s.toCharArray(); //toCharArray()方法是直接将字符串变为字符数组,没有参数,split方法是切割字符串为字符数组,有参数
int sum = 0;
for(int j = 0; j < c.length;j++){
sum += c[j] - '0'; //整形和字符型相加为整形,但这时的字符会转为相应的ASCII码,如'1'=49,若要得到真正的需要减'0'
}
if(sum == i){
count++;
System.out.println(i);
}
}
System.out.println("一共有" + count + "个");
/*
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);
*/
}
}