n的阶乘
题目描述
输入一个正整数N,输出N的阶乘。
输入描述:
正整数N(0<=N<=1000)
输出描述:
输入可能包括多组数据,对于每一组输入数据,输出N的阶乘
示例1
输入
4
5
15
输出
24
120
1307674368000
分析:大数运算是一个老生畅谈,常谈常新的话题。
关于大数阶乘,自以为以下这篇博文讲得不错
https://blog.csdn.net/lisp1995/article/details/52403507
以下是我这题通过的代码:
#include <stdio.h>
int main(){
int a[20001];//储存每一位所得到的数
int temp,digit,n,i,j=0;
while(scanf("%d",&n)!=EOF){
a[0]=1;//从1开始乘
digit=1;//位数从第一位开始
for(i=2;i<=n;i++){
int num=0;
for(j=0;j<digit;j++){ //从低位到高位
temp=a[j]*i+num;//将一个数的每一位利用数组进行存储
a[j]=temp%10;//将一个数的每一位利用数组进行存储
num=temp/10;
}
while(num){ //判断退出循环后,num的值是否为0
a[digit]=num%10;//继续存储
num=num/10;
digit++;
}
}
for(i=digit-1;i>=0;i--)
printf("%d",a[i]);
printf("\n");
}
return 0;
}
相关阅读
(吴绛枫 极客公园)氪信科技创始人&CEO朱明杰,将自己定义为「科创家」,是「最早在学术界,奔着搞科研去,接着到了工业界,最后加入创业大军
第一次数学危机——无理数的发现。以前人们公认所有的数都可以表示成2个整数的比值。然后有了毕达哥拉斯定理,取最简单的情形,2个直
n!是表示为自然数n的阶乘,即:n!=1 × 2 × 3…(n-2) × (n-1) × n。如: 9!=9×8×7×6×5×4×3×2×1。阶乘也可以递归方式定义:0!=
如今,当许多公司正在进行网络营销时,大都会觉得有点困难。 选择哪个平台都不给力,效果总是上不来,浪费了推广成本,网络推广没效果的原
近日,国家工业信息安全发展研究中心公布了“2017大数据优秀产品和应用解决方案案例”的名单,网易云旗下大数据产品&mdash