Python语言程序编写

一个小孩给一个富翁做事,商量的报酬是第一天2角,第二天是第一天的2倍,以此类推,请问第10天过后,这个小孩从第1天到10天每天能拿到的报酬,以及这10天总共能拿到的报酬,并输出相应结果。怎么使用递归函数完成?

  1. 单位是 角
def fun(N):
    if N == 1:
        return 2
    else:
        return 2 * fun(N - 1)

n = 10
sumN = 0
for i in range(1, n + 1):
    print("第{}天的报酬是{}角".format(i,fun(i)))
    sumN += fun(i)

print("总报酬是{}角".format(sumN))

img


  1. 单位是 元
def fun(N):
    if N == 1:
        return 0.2
    else:
        return 2 * fun(N - 1)

n = 10
sumN = 0
for i in range(1, n + 1):
    print("第{}天的报酬是{}元".format(i,fun(i)))
    sumN += fun(i)

print("总报酬是{}元".format(sumN))

img

#第二天的报酬是第二天的二倍
def ff(n):
    if n !=1:
        return ff(n - 1) * 2
    else:
        return 0.2
    # if n == 1:
    #     return 0.2  # 递归停止
    # return ff(n - 1) * 2+0.2
def f(n):
    sum=0
    for i in range(1,n+1):
        sum+=ff(i)
        print("第%d天的报酬为:%.1f"%(i,ff(i)))
    print(sum)
f(10)

测试图:

img

如有帮助,还请点下采纳!