递归是我们在学习编程中,必须要去学习的,虽然递归晦涩难懂 ,但是很多时候,递归的思想会很有用,但是在实际开发中,不建议使用递归,要用循环来代替递归,不然bug无穷。
-----------------------------------------------------------
问题描述:
有5个人坐在一起,
问第5个人,他说比第4个人大2岁,
问第4个人,他说比第3个人大2岁,
问第3个人,他说比第2个人大2岁,
问第2个人,他说比第1个人大2岁,
问最后一个人,他说10岁
第5个人多大?
-------------------------------------------------------------
分析如下:
ren: 1 2 3 4 5
age : x x+2 (x+2)+2 (x+2+2)+2 (x+2+2)+2
10 12 14 16 18
-------------------------------------------------------------
代码实现:
#include <stdio.h> #include <stdlib.h> int age(int n) { int i_age; if(1 == n) { i_age = 10; } else { i_age = age(n-1) + 2; } return i_age; } int main(void) { printf("The fifth‘s age is %d\n", age(5)); system("pause"); return 0; }
-------------------------------------------------------------
运行结果:
-------------------------------------------------------------
本文出自 “享受科技带来的快乐” 博客,请务必保留此出处http://liam2199.blog.51cto.com/2879872/1429941