以递减方式打印数字,然后打印最多为n的阶乘

时间:2014-02-27 19:40:43

标签: java recursion

我想从用户那里取一个整数n并用它来打印n-0,n-1,n-2等,直到零(每行一个数字)然后从0开始!到n!。递归。但是我完全迷失了,因为我对递归的理解充其量是拙劣的(慷慨)。到目前为止,这是我的微薄代码:

static void p(int n)
{
    if (n == 0)
    {
        System.out.println(n);
    }
    else
    {
        System.out.println(n);
        p(n-1);
    }
}

感谢阅读!

1 个答案:

答案 0 :(得分:2)

没有测试它,但这应该可行。

static void p(int n)
{

    System.out.println(n);
    if (n > 0)
    {
        p(n-1);
    }
    System.out.println(n);

}

我建议您通过代码调试来理解, 为什么 此代码可以使用

更新:

static int p(int n)
   {

    System.out.println(n);
    int newN = n;
    if (n > 0)
    {
        newN = n*p(n-1);
    }
    System.out.println(newN);
    return newN==0?1:newN;
}