当前位置 : 主页 > 编程语言 > c语言 >

递归与迭代

来源:互联网 收集:自由互联 发布时间:2023-09-03
一、递归 递归即函数在执行时会调用它本身。 1.请用递归法打印整数的每一位 假设输入整数1234,把每一位打印出来为1 2 3 4 (1)思路: 要先把1打印出来则打印1的函数应该被最后调用


一、递归

递归即函数在执行时会调用它本身。

1.请用递归法打印整数的每一位

假设输入整数1234,把每一位打印出来为1 2 3 4

(1)思路:

要先把1打印出来则打印1的函数应该被最后调用,最先执行完毕。

1234%10=4        1234/10=123

123%10=3           123/10=12

12%10=2             12/10=1

1%10=1               1/10=0

(2)代码实现:

void print_every(int numb) {
	int remainder = numb % 10;
	numb = numb / 10;
	if (numb > 0) {
		print_every(numb);
	}
	printf("%d ", remainder);

}
int main() {
	int numb = 0;
	scanf("%d", &numb);
	print_every(numb);
	return 0;
}

(3)递归的栈溢出

内存可分为栈区,堆区,静态区,其中栈区负责存储局部变量和函数形参,用递归的方式反复调用函数,可能会导致栈溢出(stack overflow)

二、迭代

迭代即每一次迭代的结果会作为下一次迭代的初始值

如之前的链式printf

链式printf_wx645804b23d0b2的技术博客_51CTO博客

三、总结

递归是函数执行过程中调用它本身

迭代是把上一次函数的return值作为下一次函数的参数

【文章原创作者:韩国高防服务器 http://www.558idc.com/krgf.html 网络转载请说明出处】
网友评论