加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

哈理工2019大数阶乘n!problemII

发布时间:2020-12-14 02:11:15 所属栏目:大数据 来源:网络整理
导读:?? 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的整数的阶乘。 Inp
??

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");

????}

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读