// 求一个三位数,该三位数等于其每位数字的阶乘之和
//1.将一个三位数,拆成三个个位数
//2.计算每位数字的阶乘
//3.将三个阶乘的值相加求和
//4.和原三位数进行==对比
public class Test1{
public static void main (String[]args){
for(int i=100;i<=999;i++){
//1.将一个三位数,拆成三个个位数
int ge =i%10;
int shi =i/10%10;
int bai = i/100;
//2.计算每位数字的阶乘
int a=factorial( bai );
int b= factorial( shi );
int c= factorial( ge);
//System.out.println(a +”\t”+b+”\t”+c);
//3.将三个阶乘的值相加求和,与原三位数进行对比
if((a+b+c)==i){
System.out.println(i);
}
}
}
//递归
public static int factorial(int n){
if (n==1){
return 1;
}else if(n==0){
return 0;
}
return n *factorial( n-1);
}
/* 循环
public static int factorial(int n){
int sum =1;
for(int i=2;i<=n;i++){
sum=sum*i;
}
return sum;
*/
}
}