def F_21(math):
str1 = ''
number = 0
while(math > 0):
number += 1/math
str1 = str(0) + str1 + '+' + '1' + '/' + str(math)
math -= 2
print(str1,'=',number)
while(True):
math = int(input('请输入任意大于零的值:'))
F_21(math)
{:5_91:}
def e_num_sum(num1):
sum1 = 0
if num1 == 1:
sum1 = 1
elif num1 == 2:
sum1 = 0.5
else:
if num1 % 2: #奇数
for n in range(1,num1+2,2):
sum1 += 1/n
else:
for n in range(2,num1+2,2):
sum1 += 1/n
return sum1
print(e_num_sum(10))
def clcodd(n):
if n == 1:
return 1
else:
return clcodd(n-2) + 1/n
def clcnum(n):
if n == 2:
return 1/2
else:
return clcnum(n-2) + 1/n
print(clcnum(8))
print(clcodd(9))
def clc(n):
if n == 1:
return 1
elif n == 2:
return 1/2
else:
return clc(n-2) + 1/n
print(clc(8))
print(clc(9))
冬雪雪冬 发表于 2017-4-1 20:07
太粗心了,重新改过。
你好,你这个写得不对。题目的要求是计算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)
checkily 发表于 2018-3-29 23:00
你好,你这个写得不对。题目的要求是计算n个分数的和,你这个只能计算n/2个分数的和。即如果n=4,要求计 ...
原题目是:
编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n
即最后的数字是1/n,而不是n个数字。
谢谢分享
看
'''
编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n
当输入n为奇数时,调用函数1/1+1/3+...+1/n
'''
def oddadd(n):
k=0
for i in range(1,n+1,2):
k=k+1/i
return k
def evenadd(n):
k=0
for i in range(2,n+1,2):
k=k+1/i
return k
def choiceadd(n):
if n%2==1:
return oddadd
if n%2==0:
return evenadd
def xadd(n):
k=0
while n>=1:
k=k+1/n
n=n-2
return k
print(choiceadd(101)(101))
print(xadd(101))
print(choiceadd(50)(50))
print(xadd(50))
def sum1(n):
print(sum(1/i for i in range(n,0,-2)))
n=input()
def sum1(n):
print(sum(1/i for i in range(n,0,-2)))
学习下。
def macro(x):
if x%2==0:
s=
Sum = sum(s)
else:
s=
Sum = sum(s)
return Sum
if __name__ =='__main__':
Num = int(input('请输入一个不为0的整数:'))
while Num == 0:
Num = int(input('请输入一个不为0的整数:'))
print(macro(Num))
def result(n):
if n % 2 == 0:
S = 0
for i in range(1,n + 1):
if i % 2 == 0:
S = S + 1/i
else:
S = 0
for i in range(1,n + 1):
if i % 2 == 1:
S = S + 1/i
return S
来学习
def even_cal(x):
if x == 2:
return 1/2
else:
return 1/x + even_cal(x-2)
def odd_cal(x):
if x == 1:
return 1
else:
return 1/x + odd_cal(x-2)
x = int(input('请输入一个数:'))
if x%2 == 0:
#调用偶数计算even_cal
result = even_cal(x)
else:
#调用奇数计算odd_cal
result = odd_cal(x)
print(result)
#编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n
def fenshijiafa():
n=int(input("输入一个数为:"))
a=0
if n%2==0:
b=n/2
for i in range(int(b)):
a+=1/n
n=n-2
else:
b=(n+1)/2
for i in range(int(b)):
a += 1 / n
n = n - 2
print (a)
fenshijiafa()
#pyt 3 的 / 运算后是float数据 for in range()需求int型数据,不作int处理会报错
def Ou(n):
result = 0
for i in range(2,n+1,2):
result += 1 / i
return result
def Ji(n):
result = 0
for i in range(1,n+1,2):
result += 1 / i
return result
k = int(input('请输入一个整数:'))
if k % 2 == 0 :
print('结果为:%f' %Ou(k))
else :
print('结果为:%f' %Ji(k))
def fun(n):
s = 0
i = 0
if n == 0:
return 0
if n % 2 == 0:
for i in range(2,n+1,2):
s += 1/i
return s
if n % 2 != 0:
for i in range(1,n+1,2):
s += 1/i
return s
temp = input('请输入一个整数:')
n = int(temp)
print(fun(n))
还在学习中,思考一下有个问题,n为负数呢?