---
# System prepended metadata

title: Untitled

---

## 【25】千位數的費氏數
Fibonacci數列的定義如下：
Fn=Fn-1+Fn-2，且F1=1,F2=1。
於是前12個Fibonacci數就是：
•	F1=1
•	F2=1
•	F3=2
•	F4=3
•	F5=5
•	F6=8
•	F7=13
•	F8=21
•	F9=34
•	F10=55
•	F11=89
•	F12=144
第十二項F12，是第一個達到三位數的Fibonacci數。
第一個達到1000位的Fibonacci數又是多少呢？

### 練習1：連續印出數字1到100，不要換行可用 print(xxx,end='')
![](https://i.imgur.com/KAYAPgu.png)

問題1：為何用range(1,101)，如果是range(1,100)，會得到怎樣的結果？

### 練習2：列出Fibonacci前100項
從1開始：1，2，3，5，8，13，21，34，55，89，……

因為這不是等差數列，需要3個變數來指定，先指定a=第1項，b=第2項，c=a+b
下一回，將b的值指定給a，c的值指定給b，而新的c還是取a+b，這樣不斷循環……
![](https://i.imgur.com/n5fOKaZ.png)


### 練習3：判斷偶數的方法：48%2得到?，而49%1會得到?
![](https://i.imgur.com/gTgss2c.png)

請在jupyternotebook裡面練習寫出完整程式
問題3：%這個符號，在python的運算代表何意義？
### 練習4：在前30項中挑出第2,4,6,8...30項，即偶數項，
求這些偶數項的和。(利用練習2程式碼修改)
你會需要一個新的變數sum來記錄總和，還有ifi%2==0:來判斷是否偶數項。

問題4：這些總和是多少呢？

#### 換一種方法來控制偶數項
先假設一個變數叫做case，初始值給他-1，在迴圈中每一回，都乘以-1
於是case的狀態是-1、1、-1、1、-1、……保持一正一負
所以當case==1，就是偶數項
![](https://i.imgur.com/bVk7x9L.png)
### 練習5：請在jupyternotebook裡面練習寫出上面這個完整程式

問題5：請修改程式，讓輸出結果的最後一個+號不要出現，如下：
![](https://i.imgur.com/OgjhCwr.png)
 
#### 【最後問題】在每一項不超過4000000的條件下，求偶數的和
你並不知道有多少項，先列出4000000以內的項，再來求和嗎？
或者同時檢查，合於條件1：小於4000000、條件2：偶數，就加起來！你會用for迴圈還是while迴圈呢？
### 練習6：請在jupyternotebook裡面練習寫出最後問題的完整程式
