zowen 发表于 2022-3-18 22:44:15

【python新手求助】递归计算国王的稻谷

看了小甲鱼递归那节课,想用递归的方法写出一个国王的稻谷的函数(国王在农夫的棋盘上放稻谷,第一个格子放1粒,第二个格子放2粒,第三个格子放4粒,每后面一个格子放的都是前一个格子的倍数),计算放到第n个格子后棋盘上面所有的稻谷数量。

>>> def temp(n):
        if 2**n==1:
                return 1
        else:
                return 2**n+temp(n-1)

计算结果有问题比如我要算第5个格子n=5实际计算结果是第6个格子的数

除了用嵌套函数的办法还可以怎么优化这个啊 ~

>>> def temp(n):
        n-=1
        def temp1(n):
                if 2**n==1:
                        return 1
                else:
                        return 2**n+temp1(n-1)
        return temp1(n)
这个是我嵌套函数的办法,n多1 我就直接给他降一位,简单粗暴太丑陋了~

isdkz 发表于 2022-3-18 22:54:03

def temp(n):
      if n==1:
                return 1
      else:
                return 2**(n-1)+temp(n-1)

zowen 发表于 2022-3-18 23:03:56

看完这个答案太伤自尊了~~~觉得自己智商不够用{:5_99:}

isdkz 发表于 2022-3-18 23:06:22

zowen 发表于 2022-3-18 23:03
看完这个答案太伤自尊了~~~觉得自己智商不够用

有什么好伤自尊的,大家都是一步一步学起的嘛,慢慢来{:5_108:}

zowen 发表于 2022-3-18 23:07:28

本帖最后由 zowen 于 2022-3-18 23:24 编辑

isdkz 发表于 2022-3-18 22:54


我这是初一代数没学好~n=x-12**(n)+temp(n-1)   可不就是   2**(x-1)+temp(x-1){:5_100:}

zowen 发表于 2022-3-18 23:15:12

继续练习 这次挑战下每次×3    13   9    27***** n*3 感觉递归应该也能写出来 我试试去
页: [1]
查看完整版本: 【python新手求助】递归计算国王的稻谷