例如: 153是一個”水仙花數(shù)”程拭,因?yàn)?53=1的三次方+5的三次方+3的三次方。
package Demo03Narcissistic_Number;
import java.util.ArrayList;
public class Naricissistic_Number {
/**
* 打印出所有的"水仙花數(shù)"棍潘,所謂"水仙花數(shù)"是指一個三位數(shù)恃鞋,其各位數(shù)字立方和等于該數(shù)本身崖媚。例如:
* 153是一個"水仙花數(shù)",因?yàn)?53=1的三次方+5的三次方+3的三次方恤浪。
*/
/*
分析:把一個三位數(shù)拆成三個一位數(shù)畅哑,m,n水由,l敢课,那么這個三位數(shù)就是100*m+10*n+l
要符合符合水仙花的標(biāo)準(zhǔn),就應(yīng)該:m^3+n^3+l^3=100*m+10*n+l
既然是三位數(shù)绷杜,那么m的取值范圍是1~9直秆,n的取值范圍是0~9,l的取值范圍是0~9
通過三個嵌套的循環(huán)來找出這些數(shù)鞭盟,并添加到一個ArrayList<Integer>集合中
*/
public static void main(String[] args) {
long start = System.currentTimeMillis();
int m;
int n;
int l;
int num;
ArrayList<Integer> list = new ArrayList<Integer>();
// 使用三個循環(huán)嵌套的方式遍歷所有的三位數(shù)
for(m=1; m<=9; m++){
for(n=0; n<=9; n++){
for(l=0; l<=9; l++){
num = (100*m)+(10*n)+l;
// 判斷該數(shù)各位數(shù)字的立方和是否等于該數(shù)本身圾结,如果符合條件則把該數(shù)添加到集合中。
if(Math.pow(m,3)+Math.pow(n,3)+Math.pow(l,3)==num){
list.add(num);
}
}
}
}
System.out.println("三位數(shù)的水仙花數(shù)有:");
System.out.println(list);
long ends = System.currentTimeMillis();
System.out.println("本次運(yùn)行共耗時: "+ (ends-start)+"毫秒");
}
}