每日一题 【每日一题】编写一个带参函数 -Python-20210927

Jack · 2021年09月27日 · 最后由 lework 回复于 2022年01月13日 · 36 次阅读
本帖已被设为精华帖!

编写一个函数,输入 n 为偶数时,调用函数求 1/2+1/4+…+1/n,当输入 n 为奇数时,调用函数 1/1+1/3+…+1/n

Jack 将本帖设为了精华贴 09月27日 22:05

参考代码:

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.0 / i
    return s

def dcall(fp,n):
    s = fp(n)
    return s

if __name__ == '__main__':
    n = int(input('input a number: '))
    if n % 2 == 0:
        sum = dcall(peven,n)
    else:
        sum = dcall(podd,n)
    print (sum)
package main

import (
    "fmt"
)

type operate func(x int) float64 // 定义一个函数类型

// 具体执行函数
func peven(n int) float64 {
    s := 0.0
    for i := 2; i <= n; i = i + 2 {
        s += 1.0 / float64(i)
    }
    return s
}

func podd(n int) float64 {
    s := 0.0
    for i := 1; i <= n; i = i + 2 {
        s += 1.0 / float64(i)
    }
    return s
}

// 调用函数
func dcall(op operate, n int) float64 {
    return op(n)
}

func main() {
    /*
        编写一个函数,输入 n 为偶数时,调用函数求 1/2+1/4+…+1/n,当输入 n 为奇数时,调用函数 1/1+1/3+…+1/n
    */

    var (
        n   = 3
        sum float64
        f   operate
    )

    if n%2 == 0 {
        f = peven
        sum = dcall(f, n)
    } else {
        f = podd
        sum = dcall(f, n)
    }
    fmt.Println(sum)
}
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册