天气这么好,你却要在一间教室里待上一个小时,想想就提不起劲。你有点烦躁地走进教室,发现黑板上画着一个三角形,形状看着莫名地舒服。等数学老师来的工夫,你忍不住注意到这个三角形里的一些规律:最外层的数全是 1,每一行都比上一行多一个数,而且整个三角形是对称的。真奇怪!
你刚坐下没多久,老师就走进了教室,解释说这个三角形就是著名的帕斯卡三角。
在接下来的一个小时里,老师向你展示了藏在这个三角形里的一些奇妙之处:
老师极力劝说你和同学们去查找它的其他用途,并向你们保证还有更多更多!就在这时,下课铃响了。你这才意识到,过去这一个小时,你完全沉浸在帕斯卡三角的世界里。你飞快地从书包里掏出笔记本电脑,走到外面,准备好好享受阳光_和_帕斯卡三角的奇妙。
你的任务是输出帕斯卡三角的前 N 行。
帕斯卡三角是一个由正整数构成的三角形。
在帕斯卡三角中,一行里值的个数等于该行的行号(行号从 1 开始)。 因此,第一行有一个值,第二行有两个值,依此类推。
第一行(最上面一行)只有一个值:1。
后面每一行的值,是把上一行中当前位置左右两侧紧挨着的数字相加得到的。
如果上一行中当前位置的左侧或右侧没有值(这种情况只出现在最左边和最右边的位置上),就把那个位置的值当作 0(相当于在求和时“忽略”它)。
我们来看看帕斯卡三角的前 5 行:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
最上面的一行只有一个值,就是 1。
最左边和最右边的值都只有一个相邻位置需要考虑,分别是它右侧和左侧的那个位置。
由于最上面的值是 1,由此可知所有最左边和最右边的值也都是 1。
其他值都有两个位置需要考虑。
例如,第五行(1 4 6 4 1)中间的值是 6,因为上一行中它左右两侧的值都是 3: