打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
打印杨辉三角形


【问题描述】打印杨辉三角形的前10行。

 杨辉三角形如下图1所示:

            1                     

         1   1                 

       1   2   1                 

     1   3   3  1               

 1   4    6    4    1           

            图1   


问题解析:

       直接找不容易找出规律,但是我们可以这样考虑,将图1转换为如下的图2形式,也就可以看出杨辉三角形也就是二维数组的一个三角区域。

 1

 1  1

 1  2  1

 1  3  3  1

 1  4  6  4  1

         图2

       假设通过二维数组a来存储,i表示行,j表示列。我们可以看出每个数据之间有如下的规律:

1)每一行的元素个数与行数相同;

2)每一行的第一个元素和最后一个元素都是1;

3)中间的元素a[i][j]= a[i-1][j-1]+a[i-1][j];

4)最后要打印杨辉三角形的样式只需要控制好每行第一个元素的位置即可。


完整代码参考:

#include

#include

using namespace std;

int main(){

      inta[11][11] = {};

      a[1][1] =1;

      for(int i= 2;i <= 10;i++){ ="">

           //将行首和行尾元素均赋值为1

           a[i][1]= 1;

           a[i][i]= 1;

          //计算中间的元素

           for(intj = 2;j <=>

                 a[i][j]= a[i-1][j-1] + a[i-1][j];

           }

      }

      //控制输出的空格输出杨辉三角形

      for(int i= 1;i <=>

           if(i!=10){

                 cout< setw((10-i)*3)="">< '="">

           }

           for(intj = 1;j <=>

                 cout< setw(6)=""><>

           }

           cout< endl;="">

      }

      return 0;

}


注:

1、setw(int n)只是对直接跟在<><>

2、n是在输出时分配了n个字符的输出宽度,然后默认的是在n个字符宽度中右对齐输出;

3、需要包含头文件

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
华为机试HJ53:杨辉三角的变形
杨辉三角
LeetCode——118. 杨辉三角
LeetCode 119:杨辉三角
有重复元素的排列问题
计算思维实践之路(六)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服