行と列を指定して、パスカルの三角形のその位置の値を計算する関数を作成しようとしています。
例:
val = GetPasVal(3, 2); // returns 2
ここでは、行 3、列 2 を指定しています。これはご覧のとおりです。
1
1 1
1 2 1
...2 のはずです。
行と列を指定して、パスカルの三角形のその位置の値を計算する関数を作成しようとしています。
val = GetPasVal(3, 2); // returns 2
ここでは、行 3、列 2 を指定しています。これはご覧のとおりです。
1
1 1
1 2 1
...2 のはずです。
アルメンの方程式を使用すると、パスカルの三角形を実装するための再帰コードは次のようになります。
using System;
using System.Collections.Generic;
public class Program
{
public void Main()
{
for(int i =0 ; i<5;i++)
{
int sum = 1;
Console.WriteLine();
for(int j =0 ; j<=i;j++)
{
Console.Write(pascal(i,j));
//Console.Write(sum); //print without recursion
sum= sum *(i-j) / (j + 1);
}
}
}
public int pascal(int x, int y)
{
if((x+1)==1 || (y+1)==1 || x==y)
{
return 1;
}
else
{
return pascal(x-1,y-1)+ pascal(x-1,y);
}
}
}
for row in range(10):
print('{: ^45}'.format(' '.join(str(pascal(row, col)) for col in range(row+1))))
上記のコードを使用してパスカル三角形を出力し、それによってコードを変更します。最初の 10 個は次のようになります。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1