【蓝桥杯试题】基础练习 特殊的数字

资源限制
时间限制: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);
	        }
	}
}
}
原文地址:https://www.cnblogs.com/does/p/13621495.html