#include <stdio.h>
int con(int);//判断是否附合条件
long fact(int);//取阶乘
int main(void){
int num;
printf("Please insert the number:\n");
scanf("%d",&num);
if(con(num))
printf("The number is right!\n");
else
printf("The number is wrong!");
return 0;
}
int con(int n){
int a= n/100;
int b= (n-a)/10;
int c=n-a-b;
if(fact(a)+fact(b)+fact(c)==n)
return 1;
else
return 0;
}
long fact(int n){
long ans;
if (n>0)
ans = n*fact(n-1);
else
ans = 1;
return ans;
}
LCC-WIN32上编译通过
#include "stdio.h"
int main()
{
int i,t,k,a[3];
printf("there are follwing number\n");
for (i=100;i<1000;i++)
{
for(t=0,k=1000;k>=10;t++)
{
a[t]=(i%k)/(k/10);
k/=10;
}
if(fact(a[0])+fact(a[1])+fact(a[2])==i)
printf("%5d",i);
}
printf("\n");
}
int fact(int n){
int ans;
if (n>0)
ans = n*fact(n-1);
else
ans = 1;
return ans;
}