【问题标题】:Recursive up-counter with one variable?带有一个变量的递归递增计数器?
【发布时间】:2021-07-21 18:06:27
【问题描述】:

我想创建一个向上计数的递归函数,从 1 计数到一个随机正数,但该随机数是我可以给这个函数的唯一参数。 有没有办法解决这个限制,在我看来我至少需要一个给定变量的函数。局部变量只是用新的递归重置..

void numChainRecursive(int lastNum)
{
    if(lastNum > 0)
    {
        printf("%d", lastNum);
        numChainRecursive(lastNum - 1);
    }
}

例如,如果 lastNum = 22,编译后我得到“222120[...]1”,但我希望它从 1 计数到 22

我只能用另一个给定变量的函数来解决这个问题,但我的目标是只使用一个给定的参数。

void numChainRecursive(int first, int last)
{
    if(first <= last)
    {
        printf("%d", first);
        numChainRecursive(first + 1, last);
    }
}

【问题讨论】:

    标签: c recursion counter


    【解决方案1】:

    将打印输出放在递归调用之后。

    void numChainRecursive(int lastNum)
    {
        if(lastNum > 0)
        {
            numChainRecursive(lastNum - 1);
            printf("%d", lastNum);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2023-02-19
      • 2019-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-14
      相关资源
      最近更新 更多