如何在java中使用递归打印模式16 11 6 1 -4 1 6 11 16?

时间:2016-12-04 05:43:20

标签: java recursion design-patterns

class Rec
{
    public int pattern(int n)
    {
        if(n>=1)
        return pattern(n-5);
        else
        return pattern(n+5);
    }
    public static void main(String args[])
    {
        int a=16;
        Rec ob=new Rec();
        System.out.print("16\t"+ob.pattern(a));
    }   
}

以上是我的代码,它成功编译但不提供任何输出。

1 个答案:

答案 0 :(得分:0)

更改模式函数,因为它永远不会中断递归。 因为无论n的值是什么,函数都会调用自身。因此,没有任何输出,模式函数调用继续。 有一件事你可以试试这个:

public int pattern(int n)
{
    if(n>=-4){
        System.out.print(""+n+"\t");
        pattern(n-5);
        if(n!=-4)System.out.print(""+n + "\t");
    }
    return 0;
}

输出:     16 11 6 1 -4 1 6 11 16