14年上机题
第一题,阶乘数。输入一个正整数,输出时,先输出这个数本身,跟着一个逗号,再输出这个数的各位数字的阶乘和,等号,阶乘和的计算结果,并判断阶乘和是否等于原数,如果相等输出Yes,否则输出No。题目说明输入的正整数以及其各位阶乘和都不会超出int型的表示范围。
输入样例1:
145
输出样例1:
145,1!+4!+5!=145
Yes
输入样例2:
1400
输出样例2:
1400,1!+4!+0!+0!=27
No
#include<stdio.h>
int jiecheng(int x){
int ans=1;int j;
if(x==0)return 1;
else{
for(j=1;j<=x;j++){
ans=ans*j;
}
return ans;
}
}
int main(){
int n,m;
int i,he;
while(scanf("%d",&n)!=EOF){
int buf[100];
he=0;
m=n;
for(i=0;m>0;i++){
buf[i]=m%10;
m=m/10;
}
printf("%d,",n);
i--;
while(i>=0){
printf("%d!",buf[i]);
if(i>0){
printf("+");
}
he+=jiecheng(buf[i]);
i--;
}
printf("=%d\n",he);
if(he==n){
printf("Yes\n");
}
else printf("No\n");
}
return 0;
}