gpt4 book ai didi

c - 如何编写递归打印程序

转载 作者:行者123 更新时间:2023-11-30 21:15:07 25 4
gpt4 key购买 nike

大师,

我想知道如何编写一个打印的递归函数

1
12
123
1234
...
……

例如:display(4) 应该打印

1
12
123
1234

代码

#include <stdio.h>

void print(int n)
{
if(n != 0)
{
print(n-1);
printf("\n");
print(n-1);
printf("%d",n);
}
}
int main()
{
print(3);
}

输出
1

12

1

123

问题

我想编写一个纯递归(没有任何循环)函数,但无法过滤不需要的打印。希望有人能帮助我!

更新

感谢大家的回答。从所有给出的评论来看,我们似乎可以只用递归来编写一个,并且需要一个循环。

最佳答案

要定义递归函数,您必须做三件事:

  1. 定义函数的作用。在本例中,它将打印从 1 到 n 的数字。
  2. 定义什么是递归调用。下次会发生什么?最简单的方法是自下而上思考;在这种情况下,在前面的每一行上,它打印的数字最多比前一行少一个。因此,每次再次调用该函数时,您都希望用比前一个数字减一的值来调用它。
  3. 定义停止条件。我应该什么时候停止递归?在这种情况下,一旦您达到数字 1,这将是您的最后一次迭代。这意味着,我们要调用递归函数直到达到此停止条件 - 或者换句话说, n 大于 1 时。

因此,我们最终得到以下算法:

function display(n):
if(n > 1):
display(n-1);

print 1..n;

关于c - 如何编写递归打印程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12890621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com