楊輝三角学習


第8回ブルーブリッジカップc組省試合第5題--楊輝三角
楊輝三角はパスカル三角とも呼ばれ、多くの数量関係の中で見ることができ、非常に重要である.0行目:1行目:1 2行目:1 2 1行目3行目:1 3 1行目4行目:1 4 6 4 1....両側の要素はすべて1で、中間の要素は左上の要素と右上の要素とです.私たちは、行番号、列番号を0からカウントすることを約束しました.したがって、6行目の2番目の要素は15で、3番目の要素は20で直感的に見ると、2次元配列を開く必要がありますが、実際には1次元配列も適任です.
次の手順は,一次元配列を用いた「テンソル」の解法である.
#include  
long long f(int row, int col){  
    if(row<2) return 1;  
    if(col==0) return 1;  
    if(col==row) return 1;  
      
    long long a[1024];  
    a[0]=1;  
    a[1]=1;   
    int p = 2;  
    int q;  
      
    while(p<=row){  
        a[p] = 1;  
        for(q=p-1;q>0;q--) a[q] = a[q] + a[q-1]; //    
        p++;  
    }  
      
    return a[col];  
}  
  
int main()  
{  
    printf("%d
", f(6,2)); printf("%d
", f(6,3)); printf("%lld
", f(40,20)); return 0; }