天氣這麼好,你一點也不想在教室裡待上一個小時。你有些不情願地走進教室,發現黑板上畫著一個形狀奇特、卻令人莫名感到滿足的三角形。在等數學老師來的時候,你不禁注意到這個三角形有幾個規律:最外側的值全都是 1,每一列都比前一列多一個值,而且整個三角形左右對稱。真奇怪!
坐下沒多久,老師就走進教室,解釋說這個三角形就是著名的巴斯卡三角形。
接下來的一小時裡,老師揭開了一些藏在這個三角形裡的奇妙事物:
老師懇切地請你和同學們去查查其他用途,並向你保證還有更多更多喔!就在這時,下課鐘聲響了。你這才發現,過去這一個小時,你完全沉浸在認識巴斯卡三角形的世界裡。你迅速從包包裡拿出筆電,走到外面,準備同時享受陽光_和_巴斯卡三角形的奧妙。
你的任務是輸出巴斯卡三角形的前 N 列。
巴斯卡三角形 是一個由正整數構成的三角形陣列。
在巴斯卡三角形中,每一列的數值個數等於它的列號(列號從 1 開始)。 因此,第 1 列有 1 個數值,第 2 列有 2 個數值,依此類推。
第 1 列(最頂端的那一列)只有 1 個數值:1。
之後每一列的數值,是把上一列中,目前位置正右方與正左方的數字相加而得。
如果上一列在目前位置的左方或右方沒有數值(這只會發生在最左邊和最右邊的位置),就把該位置的數值視為零(等於在相加時「忽略」它)。
來看看巴斯卡三角形的前 5 列吧:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
最頂端的那一列只有 1 個數值,就是 1。
最左邊和最右邊的數值,各自只有一個相鄰位置要考慮,分別是它右方和左方的位置。
由於最頂端的數值是 1,由此可知,所有最左邊和最右邊的數值也都是 1。
其他數值都有兩個位置要考慮。
舉例來說,第 5 列(1 4 6 4 1)中間的數值是 6,因為上一列中它左方和右方的數值分別是 3 和 3:
| 暫存器 | 用途 | 型別 | 說明 |
|---|---|---|---|
$a0 |
輸入 | 整數 | 三角形列數 |
$a1 |
輸入/輸出 | 位址 | 字組陣列 |
$v0 |
輸出 | 整數 | 輸出字組的數量 |
$t0-9 |
暫時 | 任意 | 用於暫時儲存 |