资源限制
内存限制:512.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s
问题描述
153是一个非常特殊的数,它等于它的每位数字的立方和,即153=1*1*1+5*5*5+3*3*3。编程求所有满足这种条件的三位十进制数。
输出格式
按从小到大的顺序输出满足条件的三位十进制数,每个数占一行。
代码实现
整体思路是,遍历所有三位数字,对数字转化为char[]以获取每个数位的数字,进而便于判断是否满足题中所给的特殊条件,即三个数位立方总和等于数本身。
需要注意的是,将char类型转换为int类型是,记得减去对应数字0的ASCII码,否则将会出错。
import java.util.Scanner;
public class Main {
public static void main(String args[]) {
for(int i=100;i<1000;i++) {
//遍历所有三位数,获取三位数对应的char[]
char[] ch = String.valueOf(i).toCharArray();
//需要将char类型转换为int类型,减去对应数字0的ASCII码
int a = ch[0]-'0';
int b = ch[1]-'0';
int c = ch[2]-'0';
if(a*a*a+b*b*b+c*c*c == i) {
System.out.println(i);
}
}
}
}