c - 递归年龄

1 /*
2 题目:有 5 个人坐在一起,问第五个人多少岁?他说比第 4 个人大 2 岁。问第 4 个人岁数,他说比第3 个人大 2 岁。问第三个人,又说比第 2 人大两。问第 2 个人,说比第一个人大两岁。最后问第一个人,他说是 10 岁。请问第五个人多大?
3 */
4 int rec_age(int n) {
5     if(n == 1)
6         return 10;    //第一个人10岁.
7     else
8         return rec_age(n - 1) + 2;    //当前人的岁数比前一个人岁数大2(这里需要加‘return‘语句).
9 }
时间: 2024-11-07 02:17:35

c - 递归年龄的相关文章

递归学习(一)最简单的C语言递归求年龄算法

递归是我们在学习编程中,必须要去学习的,虽然递归晦涩难懂 ,但是很多时候,递归的思想会很有用,但是在实际开发中,不建议使用递归,要用循环来代替递归,不然bug无穷. ----------------------------------------------------------- 问题描述: 有5个人坐在一起, 问第5个人,他说比第4个人大2岁, 问第4个人,他说比第3个人大2岁, 问第3个人,他说比第2个人大2岁, 问第2个人,他说比第1个人大2岁, 问最后一个人,他说10岁 第5个人多大

递归解决年龄问题

问题: 5个人坐在一起,第5个人说他比第四个大2岁,第4个说比第三个大2岁,第3个说比第二个大2岁, 第2个说比第1个大2岁,第一个说自己10岁,当输入第几个人的时候求出其对应的年龄. #include <stdio.h> #include <stdlib.h> int age(int n); /* run this program using the console pauser or add your own getch, system("pause") o

递归推导——猜年龄

一.问题描述 班里转来了一位新同学,他在介绍自己年龄的时候说:"我的年龄的平方是一个三位数,立方是一个四位数,四次方是一个六位数.三次方和四次方正好将0/1/2/3/4/5/6/7/8/9这10个数字全部覆盖.",那么,该同学今年多大? 二.算法思想 首先将年龄的大致范围确定下来,因为17的四次方是83521,小于六位数:22的三次方是10648,大于四位数:因此该同学的年龄范围是大于17而小于22.然后将17~22之间的数进行列举,将计算得到的四位数和六位数的每位数字分别存放于数组中

Python练习笔记——利用递归求年龄,第五个比第四个大2岁...

现在有五个人, 第五个人比第四个人大两岁,18 第四个人比第三个人大两岁,16 第三个人比第二个人大两岁,14 第二个人比第一个人大两岁,12 第一个人现10岁,                 10 第五个人的年龄是多大(采用递归函数计算) def age(n): # n 表示第几个人 if n == 1: return 10 return 2 + age(n-1) print(age(5)) 输出:18

java例题_23 递归求年龄

1 /*23 [程序 23 求岁数] 2 题目:有 5 个人坐在一起,问第五个人多少岁,他说比第 4 个人大 2 岁.问第 4 个人岁数,他说比第 3 个 3 人大 2 岁.问第三个人,又说比第 2 人大两岁.问第 2 个人,说比第一个人大两岁.最后问第一个人,他 4 说是 10 岁.请问第五个人多大? 5 */ 6 7 /*分析 8 *除第一个人外,每个人都比前面那个人大2岁,用递归算法 9 *x2=x1+2,x3=x2+2,x4=x3+2,x5=x4+2;x1=10 10 * */ 11 1

C语言中的递归

思路 下图描述的是从问题引出到问题变异的思维过程: 概述 本文以数制转换为引,对递归进行分析.主要是从多角度分析递归过程及讨论递归特点和用法. 引子 一次在完成某个程序时,突然想要实现任意进制数相互转换,于是就琢磨,至少涉及以下参数: 源进制数:scr 目标进制:dest_d实现的大致思路: scr --> 数字分解 --> 按权求和 --> dest很明显这个过程是先正序分解,然后逆序求和,所以我就联想到了递归. 递归 1. 递归的含义 递归就是递归函数.递归函数是直接或间接调用自身的

【学习ios之路:C语言】函数及递归的简单应用

函数定义: 返回值类型 函数名(形参列表){函数体(函数的实现内容)}; 函数定义的四种形式: //函数定义第一种形式: 无参数, 无返回值 void byMilk() { //如果没有参数,小括号必不可少. printf("没钱\n"); } //函数名的命名规范:由多个英文单词组成,除了第一个单词的首字母小写,其余单词首字母大写. //函数定义第二种形式,有返回值,无参数 float salary() { printf("同志们辛苦了\n"); return 0

Day5_递归_二分法

递归调用: 在调用一个函数的过程中,直接或间接的调用函数本身. def func(): print('from func') 间接调用: def foo(): print('form foo') bar() def bar(): print('form foo') foo() 递归都是有次数限制的. 问5个人年龄,第五个比第四个大2岁,以此类推,第一个18岁. def age(n): if n ==1: return 18 return age(n-1)+2 print(age(5)) 递归的执

算法编程学习之递归

递归:程序调用自身的编程技巧称为递归( recursion).递归做为一种算法在程序设计语言中广泛应用. 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量.递归的能力在于用有限的语句来定义对象的无限集合.一般来说,递归需要有边界条件.递归前进段和递归返回段.当边界条件不满足时,递归前进:当边界条件满足时,递归返回. 实例: