资源限制
时间限制:1.0s 内存限制:512.0MB
问题描述
153是一个非常特殊的数,它等于它的每位数字的立方和,即153=111+555+333。编程求所有满足这种条件的三位十进制数。
输出格式
按从小到大的顺序输出满足条件的三位十进制数,每个数占一行。
枚举+判断 JAVA
public class Main {
public static void main(String[] agrs) {
for (int i = 1; i < 10; i++) {
for (int j = 0; j < 10; j++) {
for(int k = 0; k < 10; k++)
if(i*i*i+j*j*j+k*k*k== i*100+j*10+k){
System.out.println("" + i + j + k);}
}
}
}
}
这是我看到题目首先想到的方法,用三个for循环从小到大求出符合题意的数。此题属于基础练习题,难度不大,但可以尽量把程序的时间复杂度降低。
public class Main {
public static void main(String[] args) {
for (int i = 100; i <= 999; i++) {
int n1 = i / 100;
int n2 = (i % 100) / 10;
int n3 = i % 10;
if (n1 * n1 * n1 + n2 * n2 * n2 + n3 * n3 * n3 == i) {
System.out.println(i);
}
}
}
}