如何将递归与迭代转换为一个长尾词?

2026-04-12 01:231阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计394个文字,预计阅读时间需要2分钟。

如何将递归与迭代转换为一个长尾词?

一、递归+递归函数在执行时会调用自身。

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

本文共计394个文字,预计阅读时间需要2分钟。

如何将递归与迭代转换为一个长尾词?

一、递归+递归函数在执行时会调用自身。

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