python编程:输入一个自然数n,如果n为奇数,输出表达式1+1/3+…+1/n的值

如果n为偶数,输出表达式1/2+1/4+…+1/n的值;输出表达式结果保留2位小数。... 如果n为偶数,输出表达式1/2+1/4+…+1/n的值;输出表达式结果保留2位小数。 展开
 我来答
jjdsjeff
2019-05-17 · TA获得超过2052个赞
知道大有可为答主
回答量:2468
采纳率:72%
帮助的人:612万
展开全部

def summ(n):
if n%2:
m=1
else:
m=2
return round(sum([1/x for x in range(m,n+1,2)]),2)
print(summ(5))

wylgga
2019-05-18 · 随想随说 ,不拘一格,从文到理,从南到北
wylgga
采纳数:24 获赞数:58

向TA提问 私信TA
展开全部
def sumlist(n):
    if n%2==0:
        numlist=[1/(2*x) for x in range(1,(n/2)+1)]
        return round(sum(numlist),2)
    else:
        numlist=[1/x for x in range(1,(1/n)+1
        reurun round(sum(numlist),2)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
兆康健5e
2020-05-22
知道答主
回答量:5
采纳率:0%
帮助的人:2949
展开全部
n=int(input())
sum=0
if n%2==1:
for i in range(2,n+1,2):
sum+=1/i
else:
for i in range(2,n+1,2):
sum+=1/i
print(round(sum,2))
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ugeimap20656
2019-05-16 · 超过10用户采纳过TA的回答
知道答主
回答量:19
采纳率:75%
帮助的人:6万
展开全部
比较常规的方法:
def test(n):
a=0
if n % 2 == 0:
for i in range(2,n+1,2):
a=a + (1/i)
else:
for i in range(1,n+1,2):
a=a +(1/i)
return a
效率更高一点的方法:
import numpy as np
def test_1():
n=input("请输入需要计算的自然数:")
n=float(n)
if n<=0 or n!=int(n):
print("请确保输入的数值是自然数(大于0的整数)")
elif n%2==0:
a=np.arange(2,n+1,2)
print("计算结果是:" + str(sum(1/a)))
else:
a=np.arange(1,n+1,2)
print("计算结果是:" + str(sum(1/a)))
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式