大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
相当于循环,要有判断条件,传递进去的参数要变化,满足条件调用自身,不满足条件就开始一层一层返回。简单例子:
网站建设哪家好,找成都创新互联!专注于网页设计、网站建设、微信开发、小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了昔阳免费建站欢迎大家使用!
int
f(int
i){
int
sum=0;
if(i0)
sum+=f(i-1);
return
sum;
}
main(){
int
a=10;
printf("%d",f(a));
}
程序调用自身的编程技巧称为递归( recursion)。
一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。
注意:
(1) 递归就是在过程或函数里调用自身;
(2) 在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口
假设n=9
1判断n=9非0,把n=9压入栈中,执行ttor(4);栈中为9
2判断n=4非0,把n=4压入栈中,执行ttor(2);栈中为9,4
3判断n=2非0,把n=2压入栈中,执行ttor(1);栈中为9,4,2
4判断n=1非0,把n=1压入栈中,执行ttor(0);栈中为9,4,2,1
5判断n=0不满足条件,函数结束
6从栈中取出n=1,执行ttor(1)的剩余部分,输出1
7从栈中取出n=2,执行ttor(2)的剩余部分,输出0
8从栈中取出n=4,执行ttor(4)的剩余部分,输出0
9从栈中取出n=9,执行ttor(9)的剩余部分,输出1
int main(int argc, char *argv[])
main参数 argc 是保存命令的个数,argv 保存命令
例如 test -a -b -c
test程序启动时接受了 4个参数(默认 test也属于一个参数 ),个数保存到argc -a -b -c 保存到argv
递归。我觉得你被这个名气搞晕了而已,其实就很简单,在某个函数中再调用这个函数,就叫递归
例如
int test(int a)
{
return test(a+1); //死循环 ,不断进入test函数 a不断加1。。。。
} //你可以理解为一个for 或者while的另一种形式,反正就是循环,加判断以停止递归调用