新手·ing 发表于 2017-4-1 18:44:09

Python:每日一题 15(答题领鱼币)

本帖最后由 新手·ing 于 2017-4-1 19:28 编辑

题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n
程序分析:无。

如果你认真答题,会得到鱼币奖励!!!
                      如果你认真答题,会得到鱼币奖励!!!
                                              如果你认真答题,会得到鱼币奖励!!!

欢迎小伙伴们,一起答题!
如果你有能力,欢迎加入我们!
已经上车老司机:@ooxx7788 @lumber2388779   
{:10_298:}点我上车 {:10_298:}

**** Hidden Message *****

新手·ing 发表于 2017-4-1 18:44:34

@lumber2388779 @ooxx7788 @冬雪雪冬 @jerryxjr1220
来吧{:10_266:}

yuclta 发表于 2017-4-1 19:26:40

我输入,运行后显示无效语法。

新手·ing 发表于 2017-4-1 19:28:37

yuclta 发表于 2017-4-1 19:26
我输入,运行后显示无效语法。

感谢你提出问题,我没有隐藏代码...
现在没问题了

冬雪雪冬 发表于 2017-4-1 19:54:43

写个简单的。
num = int(input('请输入数字:'))
print(sum())

新手·ing 发表于 2017-4-1 20:01:12

冬雪雪冬 发表于 2017-4-1 19:54
写个简单的。

编写一个函数...
冬雪大大要认真读题{:10_256:}

新手·ing 发表于 2017-4-1 20:02:17

冬雪雪冬 发表于 2017-4-1 19:54
写个简单的。

但是还是学习了..大佬就是大佬{:10_277:}

冬雪雪冬 发表于 2017-4-1 20:07:41

新手·ing 发表于 2017-4-1 20:01
编写一个函数...
冬雪大大要认真读题

太粗心了,重新改过。
def sum1(n):
    return sum()

if __name__ == '__main__':
    num = int(input('请输入数字:'))
    print(sum1(num))

新手·ing 发表于 2017-4-1 20:14:37

冬雪雪冬 发表于 2017-4-1 20:07
太粗心了,重新改过。

还是可怕...
厉害!

gopythoner 发表于 2017-4-1 20:18:51

不能显示为分数,不精确

新手·ing 发表于 2017-4-1 20:19:37

gopythoner 发表于 2017-4-1 20:18
不能显示为分数,不精确

凑合做吧...

gopythoner 发表于 2017-4-1 20:22:36

这个题直接做的话,很简单,但是我觉得不能以分数的形式进行运行,从数学的意义来讲,不够精确
def test15(n):
    s = 0
    if n%2 ==0:
      for i in range(1,n+1):
            if i%2 ==0:
                num = 1/i
                s =s + num
      print(s)
    else:
      for i in range(1,n+1):
            if i%2 !=0:
                num = 1/i
                s =s + num
      print(s)

if __name__ == '__main__':
    test15(49)

gopythoner 发表于 2017-4-1 20:23:30

冬雪雪冬 发表于 2017-4-1 19:54
写个简单的。

{:9_232:}
你这个就有点欺负人了

冬雪雪冬 发表于 2017-4-1 20:25:45

gopythoner 发表于 2017-4-1 20:23
你这个就有点欺负人了

嘻嘻

gopythoner 发表于 2017-4-1 20:26:03

冬雪雪冬 发表于 2017-4-1 19:54
写个简单的。

2.591226249452671
2.5912262494526717

为什么用我的函数和你的函数得到的数值的精确度会不一样?
上面一个是我的,下面一个是你的,num=49算的

99592938 发表于 2017-4-1 20:33:17

def f_even(x):
    result=0
    for i in range(2,x+1,2):
      result+=1/i
    return result

def f_odd(x):
    result=0
    for i in range(1,x+1,2):
      result+=1/i
    return result

num=int(input('请输入一个整数:'))
if num%2:
    print(f_odd(num))
else:
    print(f_even(num))

冬雪雪冬 发表于 2017-4-1 20:34:03

gopythoner 发表于 2017-4-1 20:22
这个题直接做的话,很简单,但是我觉得不能以分数的形式进行运行,从数学的意义来讲,不够精确

写个分数版的。
from fractions import Fraction
def sum1(n):
    return sum()

if __name__ == '__main__':
    num = int(input('请输入数字:'))
    print(sum1(num))

冬雪雪冬 发表于 2017-4-1 20:37:04

gopythoner 发表于 2017-4-1 20:26
为什么用我的函数和你的函数得到的数值的精确度会不一样?
上面一个是我的,下面一个是你的,num=49 ...

还是系统的误差,可能我的是从大到小算的,你的是从小到大算的。

剩者为王 发表于 2017-4-1 20:37:29

num = int(input('请输入数字:'))
print(sum())

新手·ing 发表于 2017-4-1 20:37:43

冬雪雪冬 发表于 2017-4-1 20:34
写个分数版的。

{:10_319:}厉害啊
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: Python:每日一题 15(答题领鱼币)