递归越做越忘,刚开始还写的好,后来就无从下手,看完代码又恍然大悟

设一个基准情况;再调用
第二个情况由第一个情况递推,再调用;
达到某个情况,返回值。

有5个人围坐在一起,问第5个人多大年纪,他说比第4个人大2岁;问第4个人,他说比第3个人大2岁;问第3个人,他说比第2个人大2岁;问第2个人,他说比第1个人大2岁。第1个人说自己10岁,请利用递归法编程计算并输出第5个人的年龄。

include <stdio.h>

unsigned int ComputeAge(unsigned int n);
main()
{
unsigned int n = 5;
printf("The 5th person's age is %d\n", ComputeAge(n));
}
/* 函数功能:用递归算法计算年龄 */
unsigned int ComputeAge(unsigned int n)
{
unsigned int age;
if (n == 1)
{
age = 10;
}
else
{
age = ComputeAge(n - 1) + 2;
}
return age;
}

posted @ 2019-11-21 13:57  哒啉  阅读(204)  评论(0编辑  收藏  举报