python计算1+1/2+1/3+...+1/n

来源:百度知道 编辑:UC知道 时间:2024/07/04 08:44:43
不要使用循环语句 精确到小数点后6胃 怎么做啊?
重点::不要使用循环语句 是不是有什么方法啊
老板的指示,懂了就不问了。。。

>>> n=1.0
>>> s=0.0
>>> while(n<=100):
s=s+1/n
n=n+1
>>> s
5.1873775176396206

不使用循环很难吧?你认为该用什么呢?

原来是递归啊,失败。。。

你们老板简直就是故意为难你!
你可以那个if的程序去恶心他。

这个没有循环,虽然内部是存在循环的。不过用的是内置函数,速度很快

print "%0.6f" %reduce(lambda x,y:x+1.0/y,range(1,101))

round(sum([1/float(x) for x in range(1,n+1)]),6)

试试这个,要不就用caoyuanvshu提到的递归

用递归啊。。。
def count (i, j):
x = float(i) + float(1)
y = j + float(1)/x
if int(x) < 100:
count(int(x),y)
else:
print '%0.6f' % y
if __name__ == '__main__':
result = count(0,0)