码迷,mamicode.com
首页 > 其他好文 > 详细

打印杨辉三角形的前10行。

时间:2016-01-09 21:40:44      阅读:408      评论:0      收藏:0      [点我收藏+]

标签:

打印杨辉三角形的前10行。杨辉三角形如下图:
          1                      1
        1   1                   1  1
      1   2   1                1  2  1
    1   3   3   1             1  3  3  1
 1   4   6   4   1           1  4  6  4  1
     [图5-1]                  [图5-2]
  
 
 
【问题分析】观察图5-1,大家不容易找到规律,但是如果将它转化为图5-2,不难发现杨辉三角形其实就是一个二维表的小三角形部分,假设通过二维数组yh存储,每行首尾元素为1,且其中任意一个非首位元素yh[i][j]的值其实就是yh[i-1][j-1]与yh[i-1][j]的和,另外每一行的元素个数刚好等于行数。有了数组元素的值,要打印杨辉三角形,只需要控制好输出起始位置就行了。
 
 

#include<iostream>
#include<iomanip>
using namespace std;
int a[11][11];
int main()
{
int i,j;
a[1][1]=1;
for(int i=2;i<=10;++i)
{
a[i][1]=1;a[i][i]=1;
for(int j=2;j<=i-1;++j)
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
for(int i=1;i<=10;i++)
{
if(i!=10) cout<<setw(30-3*i)<<" ";
for(int j=1;j<=i;j++)
cout<<setw(6)<<a[i][j];
cout<<endl;
}
return 0;
}

 
 

打印杨辉三角形的前10行。

标签:

原文地址:http://www.cnblogs.com/niegaobo/p/5117307.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!