大整数阶乘问题的递推算法 //:===========“大整数阶乘”问题的递推算法===========
' Z, N" k8 T" I# ~3 o, [ #define MAXN 1000 //最大数据位数$ z1 p2 Z" U3 u
//用递推法求取整数k的阶乖,将结果放入数组array中
1 C" y& K% I, O* A" i3 I& g void pnext(int array[],int k)# |7 j C+ ~( K2 m3 a
{
C) ~- D5 G" L: D) A8 R1 n0 | int *temp; //动态数组[临时存储运算大整数]
I* t, u3 ]: y( J int i,j,num_len = array[0],carry,t; //循环变量,长整数位数,进位标志,临时变量
. I$ L2 b9 H8 b; F7 v& ` if(array[0] >= MAXN)+ t! W; r! {2 K! `0 B
{
. n7 |# V. g- ^( W printf("数据处理位数超过程序设计上限,程序将自动中断运行!\n");
* f# u$ j" T4 J. [' ]( ^; u exit(1);
% {+ @$ r' H% ]7 _) _" ]9 b& ~ }/ ^4 N1 C/ G4 N ^ W- Y& r
temp = (int *)malloc(sizeof(int) * (num_len + 1)); //创建动态数组
& B6 [# o& g8 Q0 C. u
! Y0 N6 w& V$ ~2 y for(i=1;i |