c+杨辉三角

也许,大概,这是2018年倒数第二篇更新吧。最近事超多,各种无暇,感觉比高三还忙,吃饭都是在赶时间。

前几天刚入c++,感觉很多python的东西遮住了视线,就好比第一章后面几节有个题目,杨辉三角。用惯了python的列表,然后c++是数组,怎么用就有点懵逼,python的列表可以随意增加元素,可c++数组是定义之后就固定长度了。各种苦思冥想,虽然有看到书本上一些简洁又牛逼的答案,但是如何用已有的只是来实现,我就是想钻钻看,上周某天午休的时候想着想着睡着了……

后来的后来,就有了下面的实现代码:

#include

#include

using namespace std;

int main(){

int n=10;

int arraya[n]=,arrayb[n+1]=;

for(int j=1;j

for(int i=0;i

arrayb[i+1]=arraya[i]+arraya[i+1];

cout

}

for(int i=0;i

arraya[i]=arrayb[i];

}

cout

}

}

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

1 6 15 20 15 6 1

1 7 21 35 35 21 7 1

1 8 28 56 70 56 28 8 1

1 9 36 84 126 126 84 36 9 1

有发给小伙伴看,说没看明白我想干啥

可能讲一下,就没那么懂了。先定义一个n个(10个)元素的数组,还有一个11个元素的数组,首位是1,后面都是0。j表示行数,一共10行;i表示数组元素的下标,从0开始,数组b中的元素是数组a中对应下标的2个元素之和,遍历出的数组b中的元素即杨辉三角的每行元素。后面一段循环就是把数组b赋值给数组a,然后就可以一直循环下去了。

其实数组a是10位,数组b是11位,而我只是把杨辉三角需要的位数给输出了,如果把b数组全部遍历一下输出,结果是一个10行*11列的矩阵,每行后面的位数全部是0。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181105G21ZNR00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券