有这样一些三位数,该三位数等于其每位数字的阶乘之和,即abc = a! + b! + c!。如(145=1!+4!+5!)
1 #include2 int main() 3 { 4 int num ; //定义这个未知数; 5 int i ; 6 int units,tens,hundreds; //分别定义这个三位数的个位、十位、百位; 7 for(num = 100 ; num < 1000 ; num ++) //因为是个三位数,所以从100循环至999停止 8 { 9 units = num%10; 10 tens = num/10%10; 11 hundreds = num/100; //每次循环的三位数都分别取出他的个、十、百位 12 for(i = units - 1 ; i > 0 ; i--) 13 { 14 units *= i; //算出个位的阶乘结果 15 } 16 for(i = tens -1 ; i > 0 ; i--) 17 { 18 tens *= i; //算出十位的阶乘结果 19 } 20 for(i = hundreds - 1 ; i > 0 ; i--) 21 { 22 hundreds *= i; //算出百位的阶乘结果 23 } 24 if(units + tens + hundreds == num) 25 { 26 printf("num = %dn",num); //如果该数的个、十、百位的阶乘结果相加等于这个循环内的num则取该值 27 } 28 } 29 return 0; 30 }