Pascal三角


PASCAL三角は、PASCAL三角における1 1 1 1 1 2 1 3 3 1 4 4 1の数が1つの組合せC(n,k)である三角行列である.C(n,k)=((((((((n/1)(n−1)/2(n−2)/3)***(n−k+2)/(k−1)/(n−k+1)/k式では乗算と除算を交互に用い,nから減算された値を毎回乗算し,次の1からインクリメントされた値で除算する.行と列のカウントが0から始まると、数字C(n,k)はn行k列になります.例えばC(6,2)は6行2列目である.プログラミング出力指定階数のPASCAL三角行列.例えば以下に12次PASCAL三角形行列を示す.
1 1 1 1 1 1 2 1 3 1 4 4 1 5 10 5 1 6 15 15 6 1 7 21 35 7 1 8 28 56 28 8 1 1 9 36 84 126,284 36 9 1 10 45 120 252 210 120 45 10 1 11 55 165 330 462 462 330 165 11 1 1 12 66 220 495 792 924 495 220 66 12 1
入力無出力サンプル入力3
// PAscal    
#include 
#include 
using namespace std;
int m;
int dp[100][100];

int main()
{
	memset(dp,0,sizeof(dp));
	cin>>m;
	for(int i = 0;i<=m;i++)
	 for(int j =0;j<=m;j++)
	 {
	 	if(j == 0) dp[i][j] = 1;
	 	else
	 	{
	 	 dp[i][j] = dp[i][j-1]*(i-j+1)/(j);	
		}
	 }
	for(int i = 0;i<=m;i++)
	 {
	 for(int j = 0;j<m-i;j++)
	  printf("   ");
	 for(int j =0;j<=i;j++)
	 {
	 	printf("%3d   ",dp[i][j]); //  %3d 
	 }
	 cout<<endl;
     }
     return 0;
 }