题目:
无穷的分数,有时会趋向于固定的数字。
请计算如下图所示的无穷分数,要求四舍五入,精确到小数点后5位,小数位不足的补0。
请填写该浮点数,不能填写任何多余的内容。
题目分析:
这道题一看我就想起了之前所做的黄金连分数,两道题有点类似。
在这道题的处理上我选择了使用一个自定义函数(func)来模仿运算过程,具体代码如下:
# 函数模仿运算过程,传入参数num
def func(num):
# 设置计算上限
if num == 300: # 这里是怕计算量不够引起误差也可以设再大一点600,900都行,但要注意运算时间
return num
else:
return num/(num+func(num+1)) # 这里下文做详解
if __name__ == '__main__': # 这里如果有所不解的话我做一篇单章来讲解
result = func(1) # 调用函数,看图运算一定是从1开始的,所以我们参数也填1
print('%.5f' % result)
# print(round(result, 5))
代码段中的:num/(num+func(num+1))
其实就是将图中的计算转为了代码而已,我们将代码转为算式推理一下也即是下图:
看图就好理解多了。