c语言问题
#include <iostream> using namespace std; int age(int); int main() { cout<<age(5)<<endl; return 0; } int age(int n) { int c; if(n==1)c=10; else c=age(n-1)+2; return c; } 这段代码是怎么递归调用的。。能详细说明一下吗。。、特别是函数int age()它的递归不需要for循环吗,我看不懂13行怎么递归的
#include <iostream> using namespace std; int age(int); int main() { cout<<age(5)<<endl; return 0; } int age(int n) { int c; if(n==1)c=10; else c=age(n-1)+2; return c; } 这段代码是怎么递归调用的。。能详细说明一下吗。。、特别是函数int age()它的递归不需要for循环吗,我看不懂13行怎么递归的
答案:很简单的,不要想的太复杂,因为 age 函数只能实现当 n等于1 时 c的结果,因此传入不等于 1 的数字就要调用函数本身进行计算,而 传入数字每次根据实际语句进行向 1 这个条件的“回归”,这个传递和回归的过程就相当一个循环。
其他:其实递归就是循环、、
age(5)=age(4)+2
age(4)=age(3)+2
age(3)=age(2)+2
age(2)=age(1)+2
age(1)=10;
经回代后就是age(5)=2+2+2+2+10;
希望采纳~~!!!! 下面是我自己写的,帮我看下有哪些问题然后帮我解决吧,(给出程序代码哦)给你一个程序作为参考,求某一天是这一年的第几天 只要把当前日期是第几天 这个等你学了数据结构的堆栈后就会知道的
上一个:c语言&= 是什么意思c语言+=是什么意思
下一个:c语言与什么专业挂钩