パスカルの三角形を逆さまにして、もう一度読み上げる再帰的なメソッドを作成しようとしています。私は逆さの三角形とrightide-up三角形を切り替えるためにブール変数を使いたいと思います。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
}
}
、私はパスカルの三角形(レベル0から10まで)rightsideアップを印刷しようとしている:これまでのところ、私は正常に逆さまパスカルの三角形を作るために、コードを書かれています。これを実現する再帰的な方法をどうすればできますか?
私はパスカルの三角に関するオンラインのコードがたくさんあることを知っています。しかし、特に私の問題を扱うものは見つけられません。
両方を出力する単一の再帰的メソッドでなければならないのですか? 'printPascalUp'と' printPascalDown'の再帰的メソッドを作るほうが簡単でしょう。 –
あなたの 'printPascal(int n)'メソッドには、(現在の数値に対して)1つのパラメータしかありません。 'upsideDown'の場合、再帰はif(n <0)'を停止します。 '!upsideDown'の場合、メソッドはいつ停止するかを知るために別のパラメータを必要とします。 – howlger
以下の回答は参考になりますか? – Assafs