C++练习01 ---- 打印杨辉三角

 

百度百科列出的一些性质:
  ·前提:端点的数为1.
  ·1、每个数等于它上方两数之和。
  ·2、每行数字左右对称,由1开始逐渐变大。
  ·3、第n行的数字有n项。
  ·4、第n行数字和为2^(n-1)。2的(n-1)次方
  ·5、第n行的第m个数和第n-m+1个数相等,即C(n-1,m-1)=C(n-1,n-m),这是组合数性质

【思路一】                                                                                                             

  用队列实现

【思路二】                                                               

用二维数组实现

 

代码:

 1 /**
 2 * 输出杨辉三角
 3 * @author CocoonFan
 4 * @date 2/27/2013
 5 */
 6 
 7 #include <iostream>
 8 #include <iomanip>
 9 using namespace std;
10 
11 int main()
12 {
13     int n;
14     while(cout << "要打印多少行? ",cin  >> n && n > 0)
15     {
16         int i,j,a[n][n];
17 
18         //第一步:初始化
19         for (i=0;i < n;i++)
20         {
21             a[i][i] = 1;
22             a[i][0] = 1;
23         }
24 
25         //第二步:循环相加
26         for (i = 2;i < n;i++)
27             for (j=1;j<=i-1;j++)
28                 a[i][j]=a[i-1][j-1]+a[i-1][j];
29 
30         //输出
31         for (i=0;i<n;i++)
32         {
33             for (j=0;j<=i;j++)
34                 cout<<setw(4)<<a[i][j]<<" ";
35             cout<<endl;
36         }
37         cout<<endl;
38 
39     }
40 
41     return 0;
42 }


运行结果:

 

 

 

 

 

 

posted @ 2013-02-27 14:12  Cocoon  阅读(1321)  评论(0编辑  收藏  举报