( a + b ) 0 = 1
( a + b ) 1 = 1a + 1b
( a + b ) 2 = 1a2 + 2ab + 1b2
( a + b ) 3 = 1a3 + 3a2b + 3ab2 + 1b3
( a + b ) 4 = 1a4 + 4a3b + 6a2b2 + 4ab3 + 1b4
杨辉三角形
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
分析:
n 次系数表有 n +1 项
n 次系数表由 n -1 次系数表迭代生成:
F0 = 1
Fn+1 = 1
Fi = Fi-1 + Fi
#include <iostream>
using namespace std;
void yangTriangle( int *const, int );
int main()
{
int n, *yt;
do
{
cout << "Please input power:\n";
cin >> n;
}while ( n<0 || n>20 );
yt = new int [n+1];
yangTriangle( yt, n );
for (int i=0; i<n+1; i++)
{
cout << yt[i] << " ";
}
cout << endl;
delete [] yt;
}
void yangTriangle( int *const pyt, int pn )
{
int i, j;
pyt[0] = 1;
for ( i=1; i<pn+1; i++ )
{
pyt[i] = 1;
for ( j=i-1; j>0; j-- )
{
pyt[j] = pyt[j-1] + pyt[j];
}
}
}