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

大数阶乘模板 hdoj1042

发布时间:2020-12-14 03:27:42 所属栏目:大数据 来源:网络整理
导读:N! Time Limit: 10000/5000 MS (Java/Others)??? Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 53465??? Accepted Submission(s): 15109 Problem Description Given an integer N(0 ≤ N ≤ 10000),your task is to calculate N! ? Inpu
N!

Time Limit: 10000/5000 MS (Java/Others)??? Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 53465??? Accepted Submission(s): 15109


Problem Description
Given an integer N(0 ≤ N ≤ 10000),your task is to calculate N!
?

Input
One N in one line,process to the end of file.
?

Output
For each N,output N! in one line.
?

Sample Input
1
2
3
?

Sample Output
1
2
6
?

Author
JGShining(极光炫影)
?

Recommend
We have carefully selected several similar problems for you:? 1715 1047 1063 1753 1316

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define M (1000000)??????????????????? //注意此处的M值,乘法不同于加减法,数组竟可能大
int jc[M];????????????????????????????????????????? //开辟数组储存

int main() { ? int n; ? while(~scanf("%d",&n)) ? { ? ?memset(jc,sizeof(jc)); ? ? ??? int i,j,k,len,digit,t; ????? jc[0]=len=1;????????????????????????? ?//将结果初始化为1 ????? ????? for(i=2;i<=n;i++)???????????????? ?//开始阶乘,从2 开始 ????? { ????? ?for(j=1,digit=0;j<=len;j++) //应阶乘中的一项与当前所得临时结果的某位//相乘(加上进位) ????? ?{ ????? ??t=jc[j-1]*i+digit;??????????????? ?//digit 进位 ????? ??jc[j-1]=t%10; ????? ??digit=t/10; ????? ?} ????? ?while(digit)?????????????????????? //判断最高位是否进位 ????? ?{ ????? ??jc[++len-1]=digit%10;?? //有进位,不仅各项有变化,而且常盾也要变 ????? ??digit/=10; ????? ?} ????? } ??? ????? for(k=len;k>0;--k) ????? ?printf("%d",jc[k-1]);??? //此处应注意 ????? ?printf("n"); ??? ? }? ? return 0; }

(编辑:李大同)

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

    推荐文章
      热点阅读