首页 > 编程语言 >python算法:年龄问题

python算法:年龄问题

时间:2024-05-15 10:44:24浏览次数:27  
标签:10 个人 递归函数 python age 算法 年龄 多少岁

一,认识递归函数

1,什么是递归?
递归的工作原理是,如果函数需要处理的问题大小合适,则直接求解并返回结果,
否则将问题分解成两个或多个更小的子问题,并对子问题进行相同的处理,
直到问题无法分解为止

2,什么是递归函数:
递归函数(recursive function)是指在函数体中可以调用自己的函数

3,语法

def fn():
    # ...
    if condition:
        # 停止自我调用
    else:
        fn()
    # ...

4,递归函数的优点和缺点

递归函数的优点:它们可以帮助程序员在处理复杂问题时提供一种简单且易懂的解决方案。
递归函数使代码具有可读性和可重用性,
而且可以使用递归函数解决使用其他方法难以处理的问题。
递归函数的缺点: 递归函数可能会在运行时占用较多的系统资源,
因为它们需要在堆栈上存储多个函数调用
其次,递归函数可能导致代码变得不容易理解,
因为它具有一定的复杂度

二,年龄问题的题目与解析

1,题目:

有5个人坐在一起,
问第5个人多少岁,他说比第4个人大2岁。
问第4个人多少岁,他说比第3个人大2岁。
问第3人多少岁,他说比第2个人大2岁。
问第2个人多少岁,他说比第1个人大2岁。
最后问第1个人多少岁,他说他是10岁。
编写程序,求出当输入某个人时其对应的年龄?

2,思路:

要求出第5个人的年龄,则必须先知道第4个人的年龄,
显然第4个人的年龄也是未知的,但可以由第3个人的年龄推算出来。
而想知道第3个人的年龄,又必须先知道第2个人的年龄,
而第2个人的年龄取决于第1个人的年龄。
又已知每个人的年龄都比其前一个人的年龄大2,
因此根据题意,可得到如下表达式:

age(5)=age(4)+2
age(4)=age(3)+2
age(3)=age(2)+2
age(2)=age(1)+2
age(1)=10

得到的数学表达式:

说明:刘宏缔的架构森林—专注it技术的博客,
网址:https://imgtouch.com
本文: https://blog.imgtouch.com/index.php/2024/03/16/python-suan-fa-nian-ling-wen-ti/
代码: https://github.com/liuhongdi/ 或 https://gitee.com/liuhongdi
说明:作者:刘宏缔 邮箱: [email protected]

三,代码实现

1,递归算法:

1 2 3 4 5 6 7 8 9 10 11 12 13 # 递归函数 # n: 第几个人 def age(n):     if n == 1:     # 如果是第一个人,返回10岁,结束递归         x = 10     else:          # 否则,返回前一个人的年龄+2         x = age(n - 1) + 2     return x     n = int(input("请输入n值:"))  # n表示第几个人 # 调用age()函数,计算第n个人的年龄 print(f"第{n}个人的年龄为:{age(n)}岁")

运行结果:

请输入n值:5
第5个人的年龄为:18岁

2, for循环解决:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 # 函数求年龄 # n: 第几个人 def age(n):     a = 0  # 年龄     for i in range(1, n + 1):         if i == 1:    # 第一个人的年龄为10             a = 10         else:             a += 2    # 第一个人之外的人依次递增2岁     return a     n = int(input("请输入n值:"))  # n表示第几个人 # 调用age()函数,计算第n个人的年龄 print(f"第{n}个人的年龄为:{age(n)}岁")

运行结果:

请输入n值:5
第5个人的年龄为:18岁
 

标签:10,个人,递归函数,python,age,算法,年龄,多少岁
From: https://www.cnblogs.com/architectforest/p/18193373

相关文章

  • python算法:青蛙跳台阶
    一,认识递归函数1,什么是递归?递归的工作原理是,如果函数需要处理的问题大小合适,则直接求解并返回结果,否则将问题分解成两个或多个更小的子问题,并对子问题进行相同的处理,直到问题无法分解为止2,什么是递归函数:递归函数(recursivefunction)是指在函数体中可以调用自己的函数3,语......
  • python算法:马克思的数学题
    一,for循环:1,功能:重复执行同一段代码语法:forindexinrange(n):   #循环体代码index:用来依次接收可迭代对象中的元素的变量名range()函数:负责返回整数序列流程图:2,应用range可以同时指定start和stop,用for遍历并打印1234#指定start和s......
  • python算法:爱因斯坦阶梯
    一,for循环:1,功能:重复执行同一段代码语法:forindexinrange(n):   #循环体代码index:用来依次接收可迭代对象中的元素的变量名range()函数:负责返回整数序列流程图:2,应用range可以同时指定start和stop,用for遍历并打印1234#指定start和s......
  • python算法:百钱买百鸡
    一,for循环:1,功能:重复执行同一段代码语法:forindexinrange(n):   #循环体代码index:用来依次接收可迭代对象中的元素的变量名range()函数:负责返回整数序列流程图:2,应用range可以同时指定start和stop,用for遍历并打印1234#指定start和s......
  • python算法:鸡兔同笼
    一,for循环:1,功能:重复执行同一段代码语法:forindexinrange(n):   #循环体代码index:用来依次接收可迭代对象中的元素的变量名range()函数:负责返回整数序列流程图:2,应用range可以同时指定start和stop,用for遍历并打印1234#指定start和s......
  • python算法: 棋盘上的麦粒(舍罕王赏麦)
    一,for循环:1,功能:重复执行同一段代码语法:forindexinrange(n):   #循环体代码index:用来依次接收可迭代对象中的元素的变量名range()函数:负责返回整数序列流程图:2,应用range可以同时指定start和stop,用for遍历并打印1234#指定start和s......
  • python算法:杨辉三角
    一,认识递归函数1,什么是递归?递归的工作原理是,如果函数需要处理的问题大小合适,则直接求解并返回结果,否则将问题分解成两个或多个更小的子问题,并对子问题进行相同的处理,直到问题无法分解为止2,什么是递归函数:递归函数(recursivefunction)是指在函数体中可以调用自己的函数3,语......
  • python算法:n皇后
    一,认识递归函数1,什么是递归?递归的工作原理是,如果函数需要处理的问题大小合适,则直接求解并返回结果,否则将问题分解成两个或多个更小的子问题,并对子问题进行相同的处理,直到问题无法分解为止2,什么是递归函数:递归函数(recursivefunction)是指在函数体中可以调用自己的函数3,语......
  • 分类算法中精确率、召回率、F1 Score的理解
    在机器学习和深度学习中,将分类任务的预测结果分为以下四种,被称作混淆矩阵:TruePositive(TP):预测出的为正例,标签值也为正例,预测正确FalseNegative(FN):预测出的为负例,标签值为正例,预测错误FalsePositive(FP):预测出的为正例,标签值为负例,预测错误TrueNegative(TN):预测出的为负......
  • python算法:角谷猜想
    一,认识递归函数1,什么是递归?递归的工作原理是,如果函数需要处理的问题大小合适,则直接求解并返回结果,否则将问题分解成两个或多个更小的子问题,并对子问题进行相同的处理,直到问题无法分解为止2,什么是递归函数:递归函数(recursivefunction)是指在函数体中可以调用自己的函数3,语......