如何使用单变量递归打印1到10和10到1

ccc*_*ccc 0 recursion

我明天准备面试 - 我需要这个问题的答案:

如何使用单变量递归打印1到10和10到1

Jer*_*fin 12

void print_recursive(int n) { 
    printf("%d\n", n);
    if (n < 10)
        print_recursive(n+1);
    printf("%d\n", n);
}
Run Code Online (Sandbox Code Playgroud)


Pho*_*ong 8

仅使用一个函数一个变量:

void recurs(int num) {
    printf("%d\n", num);
    if (num < 10) {
        recurs(num + 1);
    }
    printf("%d\n", num);
}

int main() {
    recurs(1);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)


SLa*_*aks 7

你应该能够自己解决这个问题.

提示:创建一个方法,将一个10参数作为参数,然后打印参数并调用自身9.


gri*_*egs 7

我打算投票,我只知道它,但这是(a)解决方案.不是最好的,但你应该能够让自己变得更好.

class Program
{
    static void Main(string[] args)
    {
        printNumDown(10);
    }

    static void printNumDown(int num)
    {
        Console.WriteLine(num.ToString());
        if (num > 1)
            printNumDown(num - 1);
        else
            printNumUp(num + 1);
    }

    static void printNumUp(int num)
    {
        Console.WriteLine(num.ToString());
        if (num < 10)
            printNumUp(num + 1);
    }
}
Run Code Online (Sandbox Code Playgroud)