n! problem II |
||||||
|
||||||
Description |
||||||
Input |
||||||
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");
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。