请选择 进入手机版 | 继续访问电脑版

智少年IT小达人_演武台

 找回密码
 立即注册
查看: 3618|回复: 0

打印杨辉三角形的前10行,C++

[复制链接]
发表于 2016-11-26 17:11:08 | 显示全部楼层 |阅读模式
例5.11 打印杨辉三角形的前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[j]的值其实就是yh[i-1][j-1]与yh[i-1][j]的和,另外每一行的元素个数刚好等于行数。有了数组元素的值,要打印杨辉三角形,只需要控制好输出起始位置就行了。

  1.  #include<iostream>
  2.  #include<iomanip>
  3.  usingnamespace std;
  4.  intmain()
  5.  {
  6.      int a[11][11];
  7.        a[1][1]=1;  //设定第一行的值
  8.      for (int i=2; i<=10; ++i)  //从第二行开始推
  9.     
  10.          a[1]=1;  a=1;  //设定每一行的首尾值为1
  11.          for (int j=2; j<=i-1; ++j)  //当前行非首尾的数
  12.                      a[i][j]=  ?+ ?;       //每个数等于上一行的二个数之和,请学生写出?里的内容
  13.      }
  14.      for (int i=1; i<=10; i++)
  15.        {
  16.          if (i!=10)cout<<setw(30-3*i)<<" ";    //控制每行的起始位置,即空格数量
  17.          for (int j=1; j<=i; j++)cout<<setw(6)<<a[j];
  18.          cout<<endl;        
  19.        }
  20.      return 0;
  21.   }
复制代码

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|智少年 ( 粤ICP备15046784号

GMT+8, 2022-10-1 09:26 , Processed in 0.114715 second(s), 19 queries .

© 2015-2018 深圳智少年教育咨询有限公司

快速回复 返回顶部 返回列表