#include<stdio.h> int fun(int); int main() { int i; for(i=1; i<=100000; i++) //循环判断 { if(fun(i)) printf("%d ", i); } } int fun(int n) //判断当前数是否是阶乘和数 { int sum = 0; int m; int i; int j; //储存每位数 int k; //当前位数的阶乘 m = n; while(1) { k = 1; j = m%10; //依次取个位数 m = m/10; //消去个位,方便下次取数 for(i=1; i<=j; i++) { k = k*i; } sum = sum + k; if(m == 0) //终止循环 break; } if(sum == n) return 1; else return 0; }
0.0分
3 人评分
#include<stdio.h> int fun(int); int main() { int i,o; for(o=1;o<10;o++) for(i=1; i<=100000; i++) //循环判断 if(i==o||i/10==o||i/100==o||i/1000==o||i/10000==o) if(fun(i)) printf("%d ", i); } int fun(int n) //判断当前数是否是阶乘和数 { int sum = 0; int m; int i; int j; //储存每位数 int k; //当前位数的阶乘 m = n; while(1) { k = 1; j = m%10; //依次取个位数 m = m/10; //消去个位,方便下次取数 for(i=1; i<=j; i++) { k = k*i; } sum = sum + k; if(m == 0) //终止循环 break; } if(sum ==