ACM逆立ち楊輝三角形

6402 ワード

ファンはグラフィックが好きで、グラフィックを逆さまに鑑賞するのが好きです.ある時、彼は楊輝の三角形を見て、とても新鮮だと思って、そこでそれらを大きく小さく振り回しました.いくつかの整数n(1≦n≦10)を入力して、その各整数を読み込んで、この整数を行数にして、その描いた逆楊輝三角形(隣接する2つのデータごとに1つのスペースで隔てられている)はファンが好むものです.Fansは手作りなのに、プログラミングでもっと速く作ることができて、どんなに爽やかですか.サンプル入力
5
3

サンプル出力
1 4 6 4 1
 1 3 3 1
  1 2 1
   1 1
    1
1 2 1
 1 1
  1

解題構想:まず楊輝三角形を2次元配列に格納する.1 11 121,1331は逆さまに出力され、出力と同時に問題に注意して隣接する2つのデータごとに1つのスペースで区切られるように要求される.
コード:
#include<iostream>
using namespace std;
int main()
{
	int n;
	while(cin>>n)
	{
		int a[n][n]={};
		int i,j,k;
		for( i=0;i<n;i++)
		{
			for( j=0;j<=i;j++)
			{
				if(i==j||j==0)
				{
					a[i][j]=1;
				} 
				 else
				 {
				 	a[i][j]=a[i-1][j]+a[i-1][j-1];//                         
				 }
			}	
		}
		for(i=0;i<n;i++)
		{
			for(j=0;j<i;j++)
				cout<<" ";//    
			for(k=0;k<n-i;k++)
			{
				cout<<a[n-i-1][k];//         , i=0;
				cout<<" ";
			}
			cout<<endl;
		}		
	}
	return 0;
}