有5个学生坐在一起。问第5个学生多少岁?他说比第4个学生大2岁。问第2个学生,说比第1个学生大2岁。最后问第1个学生,他说是10岁。请问第5个学生多大?(递归调用)
举一反三
- 完善程序功能题。问题:有5个学生坐在一起问第5个学生多少岁?他说比第4个学生大2岁问第4个学生岁数,他说比第3个学生大2岁问第3个学生,又说比第2个学生大2岁问第2个学生,说比第1个学生大2岁最后问第1个学生,他说是10岁请问第5个学生多大?填写下面的程序:
- 有5 个学生坐在一起,问第5个学生多少岁,他说比第4个学生大2岁。问第 4个学生岁数,他说比第3个学生大2岁。问第3个学生,又说比第2个学生大2岁。问第 2个学生,说比第1个学生大2岁。最后问第1个学生,他说是10岁。请问第5个学生 多大。 解题思路:要求第5个学生的年龄,就必须先知道第4个学生的年龄,而第4个学生的 年龄也不知道,要求第4个学生的年龄必须先知道第3个学生的年龄,而第3个学生的年龄 又取决于第2个学生的年龄,第2个学生的年龄取决于第1个学生的年龄。而且每一个学 生的年龄都比其前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 可以用数学公式表述如下: age(n) 10 (n= 1) age(n) = age(n- 1)+2 (n> 1)
- 有n个人坐在一起,问第n个人多少岁,他说比第n-1个人大两岁,问第n-1个人多少岁,他说比第n-2个人大两岁,以此类推,问第2个人多少岁,他说比第1个人大两岁,最后问第1个人多少岁?他说是10岁。使用函数的递归调用求第n个人多少岁
- 完善程序功能题。问题:有5个学生坐在一起问第5个学生多少岁?他说比第4个学生大2岁问第4个学生岁数,他说比第3个学生大2岁问第3个学生,又说比第2个学生大2岁问第2个学生,说比第1个学生大2岁最后问第1个学生,他说是10岁请问第5个学生多大?填写下面的程序:#includeintmain(){intage(intn);printf('NO.5,age:%d ',第1个空);return0;}intage(intn){intc;if(n==1)c=第2个空;elsec=第3个空;return(c);}作答格式:第1个空:你的答案第2个空:你的答案第3个空:你的答案
- 编写程序解决如下问题:有五个学生坐在一起,问第五个学生多少岁,他说比第四个学生的年龄大2岁。问第四个学生多少岁,他说比第三个学生大2岁。问第三个学生多少岁,他说比第二个学生的年龄大2岁。问第二个学生多少岁,他说比第一个学生大2岁。最后问第一个学生几岁,他说是10岁。请问第五个学生多少岁。