问题:使用方法一和方法二的计算结果不一样
计算1 - 1/2 + 1/3 - 1/4 + … + 1/99 - 1/100 + …直到最后一项的绝对值小于10的-5次幂为止
方法一:while循环,当1/n大于10的-5次幂时才执行while循环
result = 0
i = 1
while 1/i > pow(10,-5):
if i % 2 == 0:
result -= 1/i
i += 1
else:
result += 1/i
i += 1
print(result)
print(count)
方法二:while循环,当1/n小于10的-5次幂时退出while循环
result = 0
n = 1
while 1:
if abs(1/n) < pow(10,-5):
break
else:
if n % 2 == 1:
result += 1/n
n += 1
else:
result -= 1/n
n += 1
print(result)
print(count)
调试方法:在两种方法里加入一个count变量,用于统计两种方法的计算次数
result = 0
i = 1
count = 0
while 1/i >= pow(10,-5):
if i % 2 == 0:
result -= 1/i
i += 1
count += 1
else:
result += 1/i
i += 1
count += 1
print(result)
print(count)
结果是:方法一计算了99999次,而方法二计算了100000次,从而基本可以判断为边界值问题,将方法一的条件while 1/i > pow(10,-5)改为while 1/i >= pow(10,-5)就可以了