编写函数sum(n),实现公式:sum(n)=2+2/3+4/3+….+(n+1)/n,当n=4时,输出为6.08(保留2位小数)
def sum(n):
a = 2
for i in range(2, n+1):
a += (i+1)/i
print(f'{a:.2f}')
以下是实现sum(n)函数并输出结果的Python代码:
def sum(n):
total = 2
for i in range(2, n+1):
total += (i+1)/i
return round(total, 2)
print(sum(4)) # 输出6.08
该函数将参数n作为输入,通过循环计算公式中每一项的和并返回结果。在循环体内,变量total存储当前总和,初始值为2,因为公式中的第一项为2。然后循环从2到n (包括n),每次将下一项加上去,最后返回结果并保留两位小数。最后一步可以使用round
函数实现,其中第二个参数为保留的小数位数。
解决方案: 根据参考资料中的段落3编写如下程序:
def sum_n(n): exp = "2" for i in range(2, n + 1): exp += " + " + str(i+1) + "/" + str(i) ans = eval(exp) return round(ans, 2)
print(sum_n(4)) # 输出保留两位小数的答案6.08
解释:我们首先定义了sum_n函数用于计算公式的和,然后使用for循环递推计算公式exp,并利用Python本身的eval函数将其计算出来,并进行四舍五入取到小数点后两位。最后在主函数中调用sum_n函数并输出计算得到的结果。
def sum(n):
result = 2.0 # 定义初始值为2.0
for i in range(2, n+1):
result += (i+1)/i # 根据公式计算累加值
return round(result, 2) # 返回保留两位小数的结果
print(sum(4)) # 输出为6.08