递归与迭代 您所在的位置:网站首页 递归和非递归的区别怎么回答 递归与迭代

递归与迭代

2023-05-27 00:23| 来源: 网络整理| 查看: 265

一、递归

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

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值作为下一次函数的参数



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有