*************************************(1)**************************************************** 假如需要计算n+16 的阶乘,n+16 接近10000,已经求得n!(共有m 个单元),(每个单元用一个long 数表示,表示 1-100000000) 第一种算法(传统算法) 计算(n+1)! 需要 m 次乘法, m 次加法(加法速度较快,可以不予考虑,下同),m 次求余(求本位),m 次除法(求进位),结果为 m+1的单元 计算(n+2)! 需要 m+1 次乘法, m+1 次求余, m+1 次除法, 结果为 m+1 个单元 计算(n+3)! 需要 m+1 次乘法, m+1 次求余 ,m+1 次除法 ,结果为 m+2 个单元 计算(n+4)! 需要 m+2 次乘法, m+2 次求余 ,m+2 次除法 ,结果为 m+2 个单元 计算(n+5)! 需要 m+2 次乘法, m+2 次求余 ,m+2 次除法 ,结果为 m+3 个单元 计算(n+6)! ... 计算(n+7)! ... 计算(n+8)! ... 计算(n+9)! ... 计算(n+10)! ... 计算(n+11)! ... 计算(n+12)! ... 计算(n+13)! ... 计算(n+14)! 需要 m+7 次乘法,m+7 次求余 ,m+7 次除法 ,结果为m+7 个单元 计算(n+15)! 需要 m+7 次乘法,m+7 次求余 ,m+7 次除法 ,结果为m+8 个单元 计算(n+16)! 需要 m+8 次乘法,m+8 次求余 ,m+8 次除法 ,结果为m+8 个单元 该算法的复杂度:共需:m+(m+8)+(m+1+m+7)*7=16m+64 次乘法,16m+64 次求余,16m+64 次除法 第二种算法: 1.将n+1 与n+2 相乘,将n+3 与n+4 相乘,将n+5 与n+6...n+15 与n+16,得到8 个数,仍然叫做n1,n2,n3,n4,n5,n6,n7,n8 2. n1 与 n2 相乘,结果叫做p2,结果为2 个单元,需要1 次乘法。 p2 与 n3 相乘,结果叫做p3,需要2 次乘法,1 次加法(加法速度快,下面省略),2 次除法,2 次求余 p3 与 n4 相乘,结果叫做p4,需要3 次乘法,3 次除法,3次求余 p4 与 n4 相乘,结果叫做p5,需要4 次乘法,4 次除法,4次求余 p5 与 n6 相乘,结果叫做p6,需要5 次乘法,5 次除法,5次求余 p6 与 n7 相乘,结果叫做p7,需要6 次乘法,6 次除法,6次求余 p7 与 n8 相乘,结果叫做p8,结果为8 个单元,需要7 次乘法,7 次除法,7 次求余 这一过程的复杂度为(1+2+3+...+7)共计28 次乘法,28 次求余,28 次除法。 3.将 n!(m 个单元) 与p8(8 个单元)相乘,需要m*8 次乘法,m次除法,m 次求余,(注意不是 m*8 次求...