您的位置:首页 > 其它

北航14年上机题

2016-07-10 20:24 225 查看
4年上机题
第一题,阶乘数。输入一个正整数,输出时,先输出这个数本身,跟着一个逗号,再输出这个数的各位数字的阶乘和,等号,阶乘和的计算结果,并判断阶乘和是否等于原数,如果相等输出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 f(int n)
{
int ans=1;
for(int i=1;i<=n;i++)
{
ans*=i;
}
return ans;
}
int ff[10];
int main()
{
int n;
int i;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<10;i++)
{
ff[i]=f(i);
}
printf("%d,",n);
int sum=0;
int num[1000];
int temp=n;
int i=0;
while(temp>0)
{
sum+=ff[temp%10];
num[i++]=temp%10;
temp=temp/10;
}
int j;
for(j=i-1;j>0;j--)
{
printf("%d!+",num[j]);
}
printf("%d!=%d\n",num[0],sum);
if(sum==n)
printf("Yes\n");
else
printf("No\n");
}
return 0;
}


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: