遞迴三角塔

2021-10-07 14:41:40 字數 1434 閱讀 5256

這個題目類似於楊輝三角形,但是比楊輝三角形簡單一點點,因為這個圖形的每一行數字都是一樣的,兩個要求,我們知道遞迴就是迴圈呼叫自身,然後後面這個要求又說設計迴圈結構函式,因此這個題目是要我們設計兩種演算法,一種演算法是我們這一章的內容——遞迴,另一種就是我們的普通解法——迴圈語句

如何設計遞迴呢?

在這一章的前面幾個題目中,我都會說到解遞迴有三個步驟,我們只要把握住這三個步驟,其他的都不是問題,管他怎麼執行的,反正呼叫能出正確結果,人類只需要負責設計,而計算這些問題就交給計算機吧,人類的大腦只負責創新、記憶和運算是電腦的事情。

首先來設計遞迴:

1.確定引數,要列印多少行,因此總行數是乙個引數;當前行列印哪個數字,以及列印多少個?我們發現第一行列印1個1,第二行列印兩個2,第三行列印3個3,,,,,,,第n行列印n個n,所以行數得作為乙個引數。

2.找引數規律,我們知道c語言在控制台輸出是從左到右從上到下輸出的,也就是程式一定是先列印1,換行再列印兩個2,換行再列印3個3……,以此類推,明顯,當前遞迴函式與上乙個遞迴函式引數有乙個加1的關係,即引數規律是i+1

3.找出口,當前遞迴函式的i還小於n的時候就一直列印,直到i(當前函式的)等於n的時候就停止列印

到此遞迴函式就設計好啦

那咱們再來看迴圈結構,迴圈結構很簡單,我們把整個三角看成乙個平面,只需要乙個巢狀迴圈,我們就可以實現列印三角,外迴圈控制列印的行數,內迴圈控制每一行列印的個數以及列印的數字

/*設計成遞迴函式*/

void

fact

(int n,

int i)

//總行數,當前行數

return;}

/*設計成迴圈結構函式*/

void

loop

(int n)

}int

main()

測試一

測試二

測試三

**編譯器:visual studio 2017

ok

三角數塔問題

數塔問題 912 15 10 6 8 2 18 9 5 19 7 10 4 16 有形如圖所示的數塔,從頂部出發,在每一結點可以選擇向左走或是向右走,一直走到底層,要求找出一條路徑,使路徑上的值最大。或者是從低往上走,使路徑上的值最大。下面 是從下往上走,要找到從下往上找,用陣列一存就行。inclu...

楊輝三角(遞迴)c

洛谷t131253 楊輝三角 遞迴 題目描述 設計遞迴程式,計算並輸出楊輝三角的前n行。輸入格式 第一行乙個正整數n,意義見描述。輸出格式 輸出n行,表示前n行的楊輝三角。行內元素以乙個空格隔開。輸入輸出樣例 輸入 1 4輸出 1 111 1211331 說明 提示 對於98 的資料,1 n 25。...

python楊輝三角形 遞迴 楊輝三角 遞迴實現

include stdio.h include stdlib.h include conio.h int try int n,int k 遞迴函式 aif t 10 printf 這兒相信大家應該能看懂的吧,我隨意設定的!else if t 9 t 100 printf 但是記住規則 每一行最開始部...