這個題目類似於楊輝三角形,但是比楊輝三角形簡單一點點,因為這個圖形的每一行數字都是一樣的,兩個要求,我們知道遞迴就是迴圈呼叫自身,然後後面這個要求又說設計迴圈結構函式,因此這個題目是要我們設計兩種演算法,一種演算法是我們這一章的內容——遞迴,另一種就是我們的普通解法——迴圈語句
如何設計遞迴呢?
在這一章的前面幾個題目中,我都會說到解遞迴有三個步驟,我們只要把握住這三個步驟,其他的都不是問題,管他怎麼執行的,反正呼叫能出正確結果,人類只需要負責設計,而計算這些問題就交給計算機吧,人類的大腦只負責創新、記憶和運算是電腦的事情。
首先來設計遞迴:
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 但是記住規則 每一行最開始部...