Linux C语言结构体2-递归与地推

递归原理

函数调用

int functionB(int a,int b){

	return (a+b);
}
int functionA(){
	...
	functionB(10,10);
	...
	return 0;

}
递归函数

int func(int n){
	int r;
	if(n<0)
		printf("data error\n");
	else if(n==0 || n==1)
		r=1;
	else
		r=n*func(n-1);
	return r;


}


数据保存在栈里面

r=n*function(n-1)函数被独立的分配了内存单元,function(n-1)已经不是原来的function(n)了,就像我们重新写了几行代码一样。

递归函数里会给一些限定条件,。要不然函数会一直调用自身,会死循环。

所谓递归就是讲一个问题为n的问题转化为问题为n-1的问题。

递推:是构造一个低阶的规模

eg:

递推思想,从低规模开始:求n的阶乘,通过规模为1的推导出规模为i+1的,以此类推得出规模为n的问题。
//总结下来就是:递归:n从高到低;递推:n从低到高!
	int func(int n)
	{
		int r=1,j;
		for(i=1;i<=n;i++){
		r=r*i;  
		}
		return (r);
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值