陣列 和 迴圈 氣泡排序,斐波那契,楊輝三角

2021-09-24 23:46:01 字數 2858 閱讀 5088

練習題

先來看幾道練習題:

1.列印楊輝三角

分析 :

楊輝三角是怎樣的乙個三角呢 他是這個樣子的

11 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

通過觀察我們可以發現,每乙個數字是他上面的數字和他上面數字的前面的數字之和。

當然 ,最簡單 的方法就是使用二維陣列。那麼 表示式就可以寫出來a[i][j]=a[i-1][j-1]+a[i-1][j]

注意:在初始化的時候應該注意 。這將影響到後面的計算。

**實現

#include

using namespace std;

intmain()

;for

(int i =

1; i <=

10; i++

) cout << endl;

}system

("pause");

return0;

}

這個方法是最容易也是最簡單的乙個方法,在這裡 ,我在給出乙個方法,使用一位陣列,但是 他計算的時候要從後往前計算,至於為什麼呢?

有興趣的人可以下去思考一下

#include

using namespace std;

intmain()

for(

int k =

0; k <= i; k++

) cout << endl;

}system

("pause");

return0;

}

2.氣泡排序

氣泡排序 是最常見的一種排序,也是很常考的一種排序,氣泡排序的思想是兩兩比較,不斷迴圈,直到陣列有序,我們知道 ,普通的氣泡排序只是單方向進行。而且不能判斷有序時候它是否會停止。

在這裡 我給出乙個改良版本,第一,他解決了排好序後多餘的迴圈,第二 ,他雙向排序,迴圈次數大大減少

#include

#include

using namespace std;

// 氣泡排序(雙向)

void

swap

(int

*a,int

*b);

void

bubblesort

(int a,

int len)

;void

printarray

(int arr,

int n)

;void

swap

(int

*a,int

*b)void

bubblesort

(int a,

int len)

} right = temp;

for(i = right; i > left; i--)}

left = temp;if(

!flag)}}

void

printarray

(int arr,

int n)

cout << endl;

}int

main()

;int len =

sizeof

(a)/

sizeof

(a[0])

;printarray

(a, len)

;bubblesort

(a, len)

;printarray

(a, len)

;system

("pause");

return0;

}

3.斐波那契數列

分析:1 1 2 3 5 8 13 21 34 55

他的每一位數就等於前面兩個數之和。

那麼 ,我們就可以定義乙個一維陣列,他的每乙個數的計算表示式就是a[i]=a[i-1]+a[i-2]

我們可以給定前面兩個元素的值,從下標為2的位置開始計算。但是不要忘了 ,列印是從下標為0開始。

#include

intmain()

;for

(int i =

2; i <

20; i++

)for

(int i =

0; i <

20; i++

)printf

("\n");

system

("pause");

return0;

}

4。列印如下數字

1 2 3 4 5 6

12 23 34 45 56

123 234 345 456

1234 2345 3456

12345 23456

123456

分析:總共列印六行 我們可以記錄乙個數字s

每個數字 第一位用i來表示,最後一位用j來表示。

那麼,現在就是找規律 ,i和j

到底初始值和結束值該怎麼樣定義?

我們會發現,當s=2時,i從1-5

當s=3,i從1-4

當s=4,i從1-3

我們就會發現 我們的i值初始值一直是1,結束值等於n-s+1

那麼我們的j=i+s-1

#include

intmain()

printf

("\t ");

}printf

("\n");

}system

("pause");

return0;

}

迴圈斐波那契數列 斐波那契數列應用

什麼是斐波那契數列 斐波那契數列指的是這樣乙個數列 1,1,2,3,5,8,13,21,34,55,89,144 這個數列從第3項開始,每一項都等於前兩項之和 台階問題 有一段樓梯有10級台階,規定每一步只能跨一級或兩級,要登上第10級台階有幾種不同的走法?這就是乙個斐波那契數列 登上第一級台階有一...

迴圈斐波那契數列 用Python實現斐波那契數列

斐波那契數列 fibonacci sequence 又稱 分割 數列 因 數學家萊昂 納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 最開始我一直不能理解兔子問題怎麼和斐波那契數列聯絡在一起的,然後畫了這個圖之後,就明白了。第一年有一對小兔子,一...

迴圈結構 (斐波那契數列)

while 迴圈條件 while 迴圈條件 特點 先執行,再判斷 執行次序不同 初始情況不滿足迴圈條件時 while迴圈一次都不會執行 do while迴圈不管任何情況都至少執行一次 for迴圈,迴圈次數確定,簡潔。for 引數初始化 條件判斷 更新迴圈變數 兔子問題 有個人想知道,一年之內一對兔子...