|
发表于 2018-3-29 23:00:20
|
显示全部楼层
你好,你这个写得不对。题目的要求是计算n个分数的和,你这个只能计算n/2个分数的和。即如果n=4,要求计算1/2+1/4+1/6+1/8的和。你的只计算了1/2+1/4的和。所以我把range(n, 0, -2),改成了range(2*n, 0, -2),计算偶数是对了,但计算奇数时,还是错的。我左思右想,没想到怎样改,你有空改一下。
我还是比较low,分开奇偶写:
- def even(n):
- result = 0
- for i in range(1, n+1):
- result += 1/(2*i)
- print('%s=%.2f' % ('+'.join(['1/'+str(2*i) for i in range(1, n+1)]), result))
- def prime(n):
- result = 1
- for i in range(n):
- result += 1/(2*i+1)
- print('%s=%.2f' % ('+'.join(['1/'+str(2*i+1) for i in range(n)]), result))
- if __name__ == '__main__':
- n = int(input('输入一个数:'))
- if not n % 2:
- even(n)
- else:
- prime(n)
复制代码 |
|