我想创建一个递归方法,打印Pascal的三角形颠倒和权利。我想使用一个布尔变量在倒三角形和右侧三角形之间切换。到目前为止,我已经成功地编写的代码,以使杨辉三角倒挂:Java:递归方法,打印Pascal的三角形颠倒和权利(通过布尔值)
public class Main
{
boolean upsideDown = true;
public void printPascal(int n)
{
if(!upsideDown)
{
//THIS IS WHERE I'M STUCK
}
if (upsideDown)
{
if(n < 0)
return;
for (int k = 0; k <= n; k++)
{
System.out.print(binom(n, k) + " ");
}
System.out.println();
printPascal(n - 1);
}
}
public int binom(int n, int k)
{
if (k==n || k==0)
return 1;
else return binom(n-1,k-1) + binom(n-1, k);
}
public static void main(String[] args)
{
new Main().printPascal(10); //This will print the Pascal's triangle
//from levels 10 to 0
}
}
所以,现在,我想打印帕斯卡三角rightside向上(从等级0至10)。我怎样才能做到这一点的递归方法?
我知道网上有很多关于帕斯卡三角形的代码。但我找不到任何与我的问题有关的问题。
它是否必须是一个单一的递归方法打印两个?只需制作'printPascalUp'和'printPascalDown'递归方法会更容易。 –
您的'printPascal(int n)'方法只有一个参数(用于当前编号)。对于'upsideDown',如果(n <0),则递归停止。对于'!upsideDown',该方法需要另一个参数来知道何时停止。 – howlger
下面的答案有帮助吗? – Assafs