综合实战2 #
- 高精度计算的例题演练
- 高精度计算的例题拆解
- 高精度计算的例题实现
收获 #
学完本节内容,可以进一步理解高精度计算算法的实现。
高精度计算的例题演练 #
问题:
求10000以内n的阶乘。
输入:
只有一行输入,整数n(0<= n <= 10000)。
输出:
一行,即n!的值。
样例输入:
100
样例输出:
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
”’
高精度计算的例题拆解 #
阶乘问题不同于之前的高精度x高精度计算,只需要仿照加法进位思路即可
for i in range(1,n+1): for j in range(len): #下面思路同加法进位思路相同 c[j]=c[j]*i+x x=c[j]//10 c[j]=c[j]%10
高精度计算的例题实现 #
#高精度x单精度问题 n=100 len=200 c=[0]*len#定义一个len位的数组 c[0]=1#阶乘从1开始计算 x=0#x为计算后的进位值 for i in range(1,n+1): for j in range(len): #下面思路同加法进位思路相同 c[j]=c[j]*i+x x=c[j]//10 c[j]=c[j]%10 c.reverse() print(c) #删除先导0 while c[0]==0: c=c[1:] print(c)
小结 #
复习巩固高精度计算的加减乘除运算
掌握并复现本节的例题
习题 #
- 习题1:使用流程图对本节中例题进行演示
- 习题2:使用decimal函数进行例题实现