菠萝蜂蜜
发表于 2017-4-5 10:34:27
def peven(n):
i = 0
s = 0.0
for i in range(2,n + 1,2):
s += 1.0 / i
return s
def podd(n):
s = 0.0
for i in range(1, n + 1,2):
s += 1 / i
return s
def dcall(fp,n):
s = fp(n)
return s
if __name__ == '__main__':
n = int(input('input a number:\n'))
if n % 2 == 0:
sum = dcall(peven,n)
else:
sum = dcall(podd,n)
print (sum)
Deast
发表于 2017-4-5 12:44:42
看看
shigure_takimi
发表于 2017-4-5 14:35:56
本帖最后由 shigure_takimi 于 2017-4-5 14:38 编辑
def f(n):
if n > 0:
total = 0
if n % 2 == 0: #偶数
for i in range(2, n + 1, 2):
total += 1 / i
else:
for i in range(1, n + 1, 2):
total += 1 / i
return total
else:
return None
for i in range(11):
print(i, f(i))
## Output:
## 0 None
## 1 1.0
## 2 0.5
## 3 1.3333333333333333
## 4 0.75
## 5 1.5333333333333332
## 6 0.9166666666666666
## 7 1.676190476190476
## 8 1.0416666666666665
## 9 1.7873015873015872
## 10 1.1416666666666666
shigure_takimi
发表于 2017-4-5 14:41:39
def f(n):
if n > 0:
total = []
if n % 2 == 0: #偶数
for i in range(2, n + 1, 2):
total.append('1/'+str(i))
else:
for i in range(1, n + 1, 2):
total.append('1/'+str(i))
return '+'.join(total)
else:
return None
for i in range(11):
print(i, f(i))
##>>>
## 0 None
## 1 1/1
## 2 1/2
## 3 1/1+1/3
## 4 1/2+1/4
## 5 1/1+1/3+1/5
## 6 1/2+1/4+1/6
## 7 1/1+1/3+1/5+1/7
## 8 1/2+1/4+1/6+1/8
## 9 1/1+1/3+1/5+1/7+1/9
## 10 1/2+1/4+1/6+1/8+1/10
风高物燥
发表于 2017-4-5 16:52:55
新手上路几节课,请多多指教,希望能得到鱼币{:10_254:}
def sum1(n):
a=0
if n%2 == 0:
i=2
for i in range(2,n+1,2):
a+=1/i
i+=2
else:
i=1
for i in range(1,n+1,2):
a+=1/i
i+=2
return a
shigure_takimi
发表于 2017-4-5 17:14:07
楼主同志,我是自己答的题。
第二次上传是把结果改成了分数连加的形式。
新手·ing
发表于 2017-4-5 17:21:09
shigure_takimi 发表于 2017-4-5 17:14
楼主同志,我是自己答的题。
第二次上传是把结果改成了分数连加的形式。
{:10_250:}我错了
271298902
发表于 2017-4-7 12:47:11
看看
AllenYJR
发表于 2017-4-7 17:45:17
def py():
a = int(input('输入数字:'))
for i in range(2,a+2,2):
b = 0
b += 1/i
print(b)
py()
wang12580
发表于 2017-4-8 10:44:36
^_^
lumber2388779
发表于 2017-4-10 19:35:22
def func(n):
sumnum = 0
if n%2:
for i in range(1,n+1,2):
sumnum += 1/i
else:
for i in range(2,n+1,2):
sumnum += 1/i
return sumnum
n = int(input('请输入一个正整数:'))
print('结果是:',func(n))
{:10_269:}每次发现冬雪的都好简便
新手·ing
发表于 2017-4-10 19:39:20
lumber2388779 发表于 2017-4-10 19:35
每次发现冬雪的都好简便
他(她)算法太6了
余欲渔
发表于 2017-4-11 21:56:24
n=int(input('输入一个数:'))
print()
余欲渔
发表于 2017-4-11 22:00:55
看了看上面有人说不能分数形式表示,不够精确,那只能来个精确的{:5_98:}
n=int(input('输入一个数:'))
print('+'.join(['1/'+str(i) for i in range(1 if n%2 else 2,n+1,2)]))
RESTART: C:\Users\Administrator\AppData\Local\Programs\Python\Python35-32\test.py
输入一个数:8
1/2+1/4+1/6+1/8
>>>
RESTART: C:\Users\Administrator\AppData\Local\Programs\Python\Python35-32\test.py
输入一个数:7
1/1+1/3+1/5+1/7
>>>
奔跑的小鱼
发表于 2017-4-14 09:42:36
def tes(n):
c=0
while n>0:
a = 1 / n
c=a+c
n-=2
return c
奔跑的小鱼
发表于 2017-4-14 09:42:59
奔跑的小鱼 发表于 2017-4-14 09:42
def tes(n):
c=0
while n>0:
新人,第一次写个试试{:5_91:}
rosen
发表于 2017-4-15 22:18:53
class Calculate:
def calculate(self,value):
self.value = value
result = 0
for i in range(1,1+int(self.value)//2):
if int(self.value)%2 == 0:
result += 1/2*i
print('the result is:%f'%result)
else:
result += 1/(2*i+1)
print('the result is:%f'%result)
还能领币不。。{:5_91:}
tianrandai
发表于 2017-4-20 10:02:47
def jioushu(n):
sum = 0
for i in range(n,0,-2):
sum+=1/i
return sum
num=int(input('请输入一个数字:'))
result=jioushu(num)
print(result)
aopgirl
发表于 2017-4-20 15:00:04
试试试试
asgs_fishc
发表于 2017-4-25 18:04:56
num = input('请输入一个数')
number = int(num)
sum = 0
if number % 2 == 1:
for i in range(2, n, 2):
sum += 1/i
else :
for i in range(1, n, 2):
sum += 1/i
print(sum)
页:
1
2
[3]
4
5
6
7
8
9
10
11
12