一个变量的递归递增计数器?

Recursive up-counter with one variable?

我想制作一个向上计数的递归函数,从 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);
    }
}

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

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