递归函数

本文探讨了递归函数的概念,分析了递归的优缺点,并详细解释了递归过程。递归在解决问题时能提供简洁的代码,但可能引发性能问题和堆栈溢出。同时,正确理解和使用递归是编程中的一项重要技能。
摘要由CSDN通过智能技术生成
函数的递归
函数可以调用自己,这就叫函数的递归
void recurse(int i)
{
	if (i > 0)
	{
		recurse(i - 1);
	}
	printf("i = %d\n", i);
}

int main()
{
	recurse(10);
	return 0;
}


递归的缺点
一个有缺陷的递归会很快耗尽计算机的资源,递归的程序难以理解和维护。

C0FD错误,栈溢出    栈被撑爆了。原因,可能是递归函数的出口问题。
递归的优点
递归给某些编程问题提供了最简单的方法
递归的过程分析
void up_down(int  n)
{
	printf("in %d, location %p\n", n, &n);
	if (n < 4)
		up_down((n + 1));
	printf("out %d, location %p\n", n, &n);
}

int main()
{
	up_down(1);
	return 0;
}


有n个人排成一队,问第n个人多少岁,他回答比前面一个人大2岁,再问前面一个人多少岁,他回答比前面一个人大2岁,一直问到最后问第一个人,他回答10岁
int age(int n)
{
	int i;
	if (n == 1)
		i = 10;
	else
		i = age(n - 1) + 2;
	return i;
}

将10进制数转化为二进制数的例子
234在十进制下为2 * 10的2次方 + 3 * 10的1次方 + 4*10的0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值