您的位置:首页 > 其它

哈理工2019大数阶乘n!problemII

2015-12-03 17:41 190 查看

n! problem II
Time Limit: 1000 MS
Memory Limit: 32768 K
Total Submit: 368(185 users)
Total Accepted: 135(114 users)
Rating:
Special Judge: No
Description
求阶乘看起来是一个很简单的问题,现在我们要计算一个不超过100的整数的阶乘。
Input
本题有多组测试数据,对于每组数据输入一个非负整数n(n不大于100),输入处理到文件结束。
Output
输出n的阶乘并换行。
Sample Input
1
2
3

Sample Output
1
2
6

Source
杨和禹求职记
Author
杨和禹
※要注意,j-1才是当前位.
#include<stdio.h>
int main()
{
int n,sum,num,ans;
int a[201];//a数组用来存储各个位上的数的答案.
while(~scanf("%d",&n))
{
a[0]=1;//0!=1;
num=1;//当前答案位数.
ans=0;//与其说是余数不如说是进位数.
for(int i=2;i<=n;i++)
{
for(int j=1;j<=num;j++)
{
sum=a[j-1]*i+ans;
a[j-1]=sum%10;
ans=sum/10;
}
while(ans)
{
a[num++]=ans%10;
ans/=10;
}
}
for(int i=num-1;i>=0;i--)
{
printf("%d",a[i]);
}
printf("\n");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: