python if n == 1: c = 10 这个怎么理解?

def age(n):
if n == 1: c = 10
else:
c = age(n - 1) + 2
return c

print age(5)

这是一个递归函数:

age(1) = 10
age(n) = age(n-1) + 2

也就是说:

age(1) = 10
age(2) = age(1) + 2 = 12

同理:

age(3) = 14
age(4) = 16

对于一个数n会一直调用age(n-1),age(n-2)...,直到age(1),然后根据再计算出age(n)的值。

具体到这个函数,就是一个等差数列,完全不需要这样写,因为这样有两个隐患:

    对于较大的n,效率低

    如果n太大,会发生递归调用栈溢出。

正确的写法应该是:

def age(n):
    return n * 2 + 8

温馨提示:内容为网友见解,仅供参考
无其他回答

python if n == 1: c = 10 这个怎么理解?
这是一个递归函数:age(1) = 10age(n) = age(n-1) + 2也就是说:age(1) = 10age(2) = age(1) + 2 = 12同理:age(3) = 14age(4) = 16对于一个数n会一直调用age(n-1),age(n-2)...,直到age(1),然后根据再计算出age(n)的值。具体到这个函数,就是一个等差数列,完...

问第五个人多少岁Python(第五个生日是几岁)
if(n==1)c=10;elsec=age(n-1)+2;returnc;} voidmain(){printf("%d\\n",age(5));} C程序:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁大两岁。请问第五个人多大?答案是18岁 includestdio.h intmain(){ inti,age[6];\/\/age[i]表示第i个人的年龄 age[1]=10;for...

python判断素数
运用python的itertools模块 具体的指令为:from itertools import count def isPrime(n): .2cto.com if n = 1:return False for i in count(2):if i * i n:return True if n % i == 0:return False

python 裴波那切数列
fibs[-1]表示fibs列表的最后一个元素,fibs[-2]表示倒数第二个元素 fibs.append(fibs[-2] + fibs[-1])表示将fibs列表最后两个元素相加,然后添加到列表的末尾 for i in range(8): 表示上述操作重复8次,这样就得到了最终10个元素的结果 ...

求大佬帮忙解答这道python题目!
5)+1):if n % i == 0:return Falsereturn True# 主函数def main():try:a, b = map(int, input("请输入两个正整数a和b(a>b):").split())if a <= b or a <= 0 or b <= 0:raise ValueErrorexcept ValueError:print("Input Error")returncount = 0for n in range(10,...

python一到10的阶乘是多少的简单介绍
1、阶乘怎么算,1到10的阶乘各是多少?2、1到10的阶乘等于多少?3、求阶乘python方法阶乘怎么算,1到10的阶乘各是多少?1~10的阶乘的结果如下:1!=1 2!=2*1=2 3!=3*2*1=6 4!=4*3*2*1=24 5!=5*4*3*2*1=120 6!=6*5*4*3*2*1=720 7!=7*6*5*4*3*2*1=5040 8!=...

python的if语句是什么意思?
另外,“elif”是“else if”的缩写,用于连接多个条件。如果存在一个不满足所有条件的默认操作,可以使用“else”部分。例如:python if 分数 >= 90: # 条件1:分数大于或等于90分 print # 结果1:输出优秀 elif 分数 >= 80: # 条件2:分数在80到89之间 print...

哪位大佬有python汉诺塔的教程
def move(n, a, buffer, c):if(n == 1):print(a,"->",c)returnmove(n-1, a, c, buffer)move(1, a, buffer, c)move(n-1, buffer, a, c)move(3, "a", "b", "c")首先是定义了一个移动的函数,四个参数分别代表,a柱上的盘子个数,buffer也就是b柱,命名为buffer便于理解...

python里 if语句冒号后面的代码是什么意思? 比如,代码里if num[i...
python是依靠缩进和冒号来区分代码层级的,if和else后面就是语句,像if、while、def和class这样的复合语句,首行以关键字开始,以冒号( : )结束,该行之后的一行或多行代码构成代码组。

python中解 斐波那契数递推公式不能理解?
if n==0:return 1 else:return n*fact(n-1)b=fact(5)print(b)源代码(注意源代码的缩进)第二张图是阶乘的递归程序,其过程是 fact(5)=5*fact(4)=5*4*fact(3)=5*4*3*fact(2)=5*4*3*2*fact(1)=5*4*3*2*1*fact(0)因为fact(0)=1,所以上式=5*4*3*2*1*1=120 详细...

相似回答