首页 > 编程语言 >算法题:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第 4 3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。

算法题:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第 4 3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。

时间:2024-09-12 09:51:43浏览次数:3  
标签:10 迭代 个人 int age 人大 两岁 第五个 first

题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第 4 3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后 5 问第一个人,他说是10岁。请问第五个人多大?

为了解决这个问题,我们可以使用两种不同的算法思路:递归和迭代。首先,我们明确问题的逻辑:每个人的年龄都是基于前一个人的年龄加2岁来确定的,从第一个人开始,他是10岁。

C语言实现

算法一:递归

c复制代码
 #include <stdio.h>  
 
   
 
 // 递归函数,计算第n个人的年龄  
 
 int getAge(int n, int firstAge) {  
 
     if (n == 1) {  
 
         return firstAge;  
 
     } else {  
 
         return getAge(n - 1, firstAge + 2);  
 
     }  
 
 }  
 
   
 
 int main() {  
 
     int firstPersonAge = 10; // 第一个人的年龄  
 
     int fifthPersonAge = getAge(5, firstPersonAge); // 计算第五个人的年龄  
 
     printf("第五个人的年龄是:%d岁\n", fifthPersonAge);  
 
     return 0;  
 
 }

算法二:迭代

c复制代码
 #include <stdio.h>  
 
   
 
 int main() {  
 
     int firstPersonAge = 10; // 第一个人的年龄  
 
     int age = firstPersonAge; // 当前计算的年龄  
 
     for (int i = 2; i <= 5; i++) {  
 
         age += 2; // 每个人的年龄都是前一个人的年龄加2  
 
     }  
 
     printf("第五个人的年龄是:%d岁\n", age);  
 
     return 0;  
 
 }

Python实现

算法一:递归

python复制代码
 def get_age(n, first_age):  
 
     if n == 1:  
 
         return first_age  
 
     else:  
 
         return get_age(n - 1, first_age + 2)  
 
   
 
 first_person_age = 10  
 
 fifth_person_age = get_age(5, first_person_age)  
 
 print(f"第五个人的年龄是:{fifth_person_age}岁")

算法二:迭代

python复制代码
 first_person_age = 10  
 
 age = first_person_age  
 
 for i in range(2, 6):  # 从第2个人开始,到第5个人  
 
     age += 2  
 
 print(f"第五个人的年龄是:{age}岁")

以上是使用C语言和Python分别通过递归和迭代两种算法来解决这个问题的示例代码。递归方法通过函数调用自身来解决问题,而迭代方法则通过循环来逐步解决问题。在这个特定的问题中,由于我们只需要计算到第五个人,所以递归和迭代在性能上的差异并不明显,但在处理更复杂或更深层次的递归时,迭代方法通常更为高效和稳定。

算法题:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第 4 3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。_迭代

标签:10,迭代,个人,int,age,人大,两岁,第五个,first
From: https://blog.51cto.com/u_15692628/11989538

相关文章

  • Springboot大学生个人信息管理系统ydb1w--(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、研究背景随着高等教育规模的不断扩大,大学生个人信息的有效管理成为高校管理的重要一环。传统的人工管理方式已难以满足高效、准确、安全的需求......
  • 个人项目:论文查重
    这个作业属于哪个课程https://edu.cnblogs.com/campus/gdgy/CSGrade22-34这个作业要求在哪里https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/homework/13229这个作业的目标独立完成一个论文查重的个人项目;在项目开发中学习PSP表格的使用;学习使用Github仓库进行......
  • 个人项目
    这个作业属于哪个课程计科22级12班这个作业要求在哪里作业要求这个作业的目标完成个人项目,实现论文查重的功能,了解软件开发流程Github链接一.PSP表格PSP2.1PersonalSoftwareProcessStages预估耗时(分钟)实际耗时(分钟)Planning计划1520E......
  • 第一次个人项目
    这个作业属于首页-计科22级12班-广东工业大学-班级博客-博客园(cnblogs.com)这个作业要求在哪个人项目-作业-计科22级12班-班级博客-博客园(cnblogs.com)这个作业的目标尝试个人项目的实现,熟悉开发环境Github项目链接futureseek/SE-test:SE......
  • 个人项目
    这个作业属于哪个课程22级计科2班这个作业要求在哪里作业要求这个作业目标设计一个论文查重算法,给出一个原文文件和一个在这份原文上经过了增删改的抄袭版论文的文件,在答案文件中输出其重复率Github地址:<>项目设计整体流程函数功能函数名功能rea......
  • 个人项目
    这个作业属于哪个课程计科22级12班这个作业要求在哪里作业这个作业的目标设计一个论文查重算法,给出一个原文文件和一个在这份原文上经过了增删改的抄袭版论文的文件,在答案文件中输出其重复率。Github链接:https://github.com/CloneYek/Kevin/blob/main/312200490......
  • 全国红帽认证—【个人考试】考点地址大全!
    注:红帽个人考试(RedHatIndividualExam)指在红帽授权线下考试中心,通过红帽考试机进行的远程考官一对一监考的考试形式长三角地区苏州:苏州竞予信息科技有限公司江苏省苏州市姑苏区干将东路666号401室上海:上海东方瑞通上海市静安区北京西路1399号信达大厦22楼E1-E3杭州:杭州博学信息技......
  • 在NAS上打造AI加持的云端个人开发环境
    作为一个有追求程序员,在工作之余有时也需要搞点开发,这时开发环境就成为一个有点棘手的问题。每个程序员都希望有一个长期的、稳定的开发环境,这样用起来才顺手。用工作电脑毕竟有不方便的方面,各种全家桶、监控、访问限制……总之工作和个人的事情还是应该彻底分开。如果用自己的......
  • 个人简单操作系统的设计与实现 毕业论文+项目源码
    !!!有需要的小伙伴可以通过文章末尾名片咨询我哦!!! ......
  • 个人项目-论文查重
    这个作业属于哪个课程班级链接这个作业要求在哪里个人项目-作业-计科22级12班-班级博客-博客园(cnblogs.com)这个作业的目标准备、创建、开发、管理、测试个人项目GitHub项目链接https://github.com/chocohQL/3122004348-01可运行jar已发布在最新......