鱼C论坛

 找回密码
 立即注册
楼主: 新手·ing

[技术交流] Python:每日一题 15(答题领鱼币)

  [复制链接]
发表于 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)

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
新手·ing + 3 + 3 支持楼主!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-5 12:44:42 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-4-5 14:35:56 | 显示全部楼层
本帖最后由 shigure_takimi 于 2017-4-5 14:38 编辑
  1. def f(n):
  2.     if n > 0:
  3.         total = 0
  4.         if n % 2 == 0: #偶数
  5.             for i in range(2, n + 1, 2):
  6.                 total += 1 / i
  7.         else:
  8.             for i in range(1, n + 1, 2):
  9.                 total += 1 / i
  10.         return total
  11.     else:
  12.         return None


  13. for i in range(11):
  14.     print(i, f(i))

  15. ##    Output:
  16. ##        0 None
  17. ##        1 1.0
  18. ##        2 0.5
  19. ##        3 1.3333333333333333
  20. ##        4 0.75
  21. ##        5 1.5333333333333332
  22. ##        6 0.9166666666666666
  23. ##        7 1.676190476190476
  24. ##        8 1.0416666666666665
  25. ##        9 1.7873015873015872
  26. ##        10 1.1416666666666666
复制代码

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
新手·ing + 3 + 3 支持楼主!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-5 14:41:39 | 显示全部楼层
  1. def f(n):
  2.     if n > 0:
  3.         total = []
  4.         if n % 2 == 0: #偶数
  5.             for i in range(2, n + 1, 2):
  6.                 total.append('1/'+str(i))
  7.         else:
  8.             for i in range(1, n + 1, 2):
  9.                 total.append('1/'+str(i))
  10.         return '+'.join(total)
  11.     else:
  12.         return None


  13. for i in range(11):
  14.     print(i, f(i))

  15. ##  >>>
  16. ##    0 None
  17. ##    1 1/1
  18. ##    2 1/2
  19. ##    3 1/1+1/3
  20. ##    4 1/2+1/4
  21. ##    5 1/1+1/3+1/5
  22. ##    6 1/2+1/4+1/6
  23. ##    7 1/1+1/3+1/5+1/7
  24. ##    8 1/2+1/4+1/6+1/8
  25. ##    9 1/1+1/3+1/5+1/7+1/9
  26. ##    10 1/2+1/4+1/6+1/8+1/10
复制代码

评分

参与人数 1荣誉 +4 鱼币 +4 收起 理由
新手·ing + 4 + 4 对不起!希望楼主继续支持~

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-5 16:52:55 | 显示全部楼层
新手上路几节课,请多多指教,希望能得到鱼币
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

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
新手·ing + 3 + 3 不错~希望坚持~

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-5 17:14:07 | 显示全部楼层

楼主同志,我是自己答的题。
第二次上传是把结果改成了分数连加的形式。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-4-5 17:21:09 | 显示全部楼层
shigure_takimi 发表于 2017-4-5 17:14
楼主同志,我是自己答的题。
第二次上传是把结果改成了分数连加的形式。

我错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-7 12:47:11 From FishC Mobile | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-4-7 17:45:17 | 显示全部楼层
  1. def py():
  2.     a = int(input('输入数字:'))
  3.     for i in range(2,a+2,2):
  4.         b = 0
  5.         b += 1/i
  6.     print(b)

  7. py()
复制代码

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
新手·ing + 3 + 3 支持楼主!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-8 10:44:36 | 显示全部楼层
^_^
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-4-10 19:35:22 | 显示全部楼层
  1. def func(n):
  2.     sumnum = 0
  3.     if n%2:
  4.         for i in range(1,n+1,2):
  5.             sumnum += 1/i
  6.     else:
  7.         for i in range(2,n+1,2):
  8.             sumnum += 1/i
  9.     return sumnum
  10. n = int(input('请输入一个正整数:'))
  11. print('结果是:',func(n))
复制代码


每次发现冬雪的都好简便
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-4-10 19:39:20 | 显示全部楼层
lumber2388779 发表于 2017-4-10 19:35
每次发现冬雪的都好简便

他(她)算法太6了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-11 21:56:24 | 显示全部楼层
  1. n=int(input('输入一个数:'))
  2. print([1/i for i in range(1 if n%2 else 2,n+1,2)])
复制代码

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
新手·ing + 3 + 3 有事某大佬~

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-11 22:00:55 | 显示全部楼层
看了看上面有人说不能分数形式表示,不够精确,那只能来个精确的
  1. n=int(input('输入一个数:'))
  2. print('+'.join(['1/'+str(i) for i in range(1 if n%2 else 2,n+1,2)]))
复制代码
  1. RESTART: C:\Users\Administrator\AppData\Local\Programs\Python\Python35-32\test.py
  2. 输入一个数:8
  3. 1/2+1/4+1/6+1/8
  4. >>>
  5. RESTART: C:\Users\Administrator\AppData\Local\Programs\Python\Python35-32\test.py
  6. 输入一个数:7
  7. 1/1+1/3+1/5+1/7
  8. >>>
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-14 09:42:36 | 显示全部楼层
def tes(n):
    c=0
    while n>0:
        a = 1 / n
        c=a+c
        n-=2
    return c

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
新手·ing + 3 + 3 支持楼主!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-14 09:42:59 | 显示全部楼层
奔跑的小鱼 发表于 2017-4-14 09:42
def tes(n):
    c=0
    while n>0:

新人,第一次写个试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-15 22:18:53 | 显示全部楼层
  1. class Calculate:
  2.         def calculate(self,value):
  3.                 self.value = value
  4.                 result = 0
  5.                 for i in range(1,1+int(self.value)//2):
  6.                         if int(self.value)%2 == 0:
  7.                                 result += 1/2*i
  8.                                 print('the result is:%f'%result)
  9.                         else:
  10.                                 result += 1/(2*i+1)
  11.                                 print('the result is:%f'%result)

复制代码

还能领币不。。

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
新手·ing + 3 + 3 能耶

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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)

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
新手·ing + 3 + 3 支持楼主!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

发表于 2017-4-20 15:00:04 From FishC Mobile | 显示全部楼层
试试试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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荣誉 +3 鱼币 +3 收起 理由
新手·ing + 3 + 3 支持楼主!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-28 19:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表