C语言计算大数阶乘的方法

本文实例为大家分享了C语言计算大数阶乘的具体代码,供大家参考,具体内容如下

问题描述

输入一个正整数n,输出n!的值。其中n!=1*2*3*…*n。

算法描述

n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法。使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推。将a乘以一个整数k变为将数组A的每一个元素都乘以k,请注意处理相应的进位。

输入格式

输入包含一个正整数n,n<=1000。

输出格式

输出n!的准确值。

样例输入

10

样例输出

3628800

#include <stdio.h>#define N 10000int main(){ int a[N]={1}; int k=0,l=1,n; int i,j; scanf("%d",&n); for(i=1;i<=n;i++) {  for(j=0;j<l;j++)  {   a[j]=a[j]*i+k;   k=a[j]/10000;   a[j]=a[j]%10000;  }  if(k)  {   a[j]=k;   l++;   k=0;  } } printf("%d",a[l-1]); for(i=l-2;i>=0;i--)  printf("%04d",a[i]); printf("\n"); return 0;}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

辽远或偏僻的地方,而会常常想起这一次的旅行,

C语言计算大数阶乘的方法

相关文章:

你感兴趣的文章:

标签云: