#include <stdio.h>
#include <math.h>
//函数f求阶乘和数
int f(int n)
{
int m,a=n;
while(a>0)
{
m+=jiecheng(a%10);
a=a/10;
}
return m;
}
//函数jiecheng求某数的阶乘
int jiecheng(int n)
{
int y;
if(n==1)
y=1;
else y=n*jiecheng(n-1);
return y;
}
int main()
{
int n,i,m,k=1;
scanf("%d",&n);
m=n;
//计算有几位数
while(m>0)
{
m=m/10;
k++;
}
m=n;
printf("%d,",n);
printf("%d",m%(int)pow(10,k-1)/pow(10,k-2));
for(i=2;i<=k;i++)
{
int x=m%(int)pow(10,k-i);
int y=pow(10,k-1-i);
printf("+%d!",x/y);
}
printf("=");
printf("%d",f(n));
if(f(n)==n)
printf("Yes\n");
else
printf("No\n");
return 0;
}
我写的程序=包括后面的部分没有输出了,好奇怪?