搭配green judge解題系統
Special thanks to 台中女中sagit老師 <(_ _)>
上一章:if條件判斷
下一章:for迴圈
回目錄:國立科學園區實驗中學C++程式語言自學講義
在上一個章節,我們學了if條件判斷
當符合條件該做的事情做完後
程式就繼續往下執行下去了
再也不會回頭重新判斷一次
但若把if改成while
在做完符合條件時該做的事情後
還會再回到判斷處重新判斷一次
如果還符合的話
就還會再執行一次大括弧內的程式
【例題】
兩津發明了一種倍倍儲蓄法,只要每天讓自己的存款倍增,很快就能達到目標的存款
輸入一開始的金額money,以及目標的金額goal
輸出將money一直倍增直到超過goal時的金額
看完題目後,先想:
1.什麼動作是要一直重複做的? 答:將錢加倍
2.承上,在什麼條件下才要做? 答:金額還沒到達目標時
這樣一直重複地執行某段程式
因此被稱作「迴圈」
請記得它不是if,它是沒有搭配else的
【學生練習題】
迴圈的用途是專門拿來處理「不知道要重複做幾次」的問題
雖然你無法預先知道要做幾次
但你可以在結束時統計出總共做了幾次
【例題】
承上題,請問兩津總共要過幾天才能達到目標?
如果需要知道總共做了幾次
只要再宣告一個計數器
在每次迴圈執行時都將計數器+1
就可以算出他總共做了幾次
例如
【學生練習題】
【例題】
一台機器上有一個按鈕,和一個起始數字
如果目前數字是奇數,則按下按鈕後,數字會減1
如果目前數字是偶數,則按下按鈕後,數字會被除以2
一直到數字變成1時停止動作輸入一個數字n,輸出總共要按幾次按鈕
看完題目後,先想:
1.什麼動作是要一直重複做的? 答:按按鈕(改變數字)
2.承上,在什麼條件下才要做? 答:數字還沒變成1時
【學生練習題】
注意,3N+1這題會把一開始的數字也算進去,所以答案記得要+1!!
【例題】
輸入一個數字,將它的個位數、十位數、百位數、…一直到最高位數,依序輸出
例如輸入31629
則輸出
9
2
6
1
3
提示:
印出一個數字n的最後一位:cout << n%10 << endl
將一個數字n的最後一位去除:n = n/10
1.什麼動作是要一直重複做的? 答:印出最後一位,並將最後一位刪去
2.承上,在什麼條件下才要做? 答:所有位數還沒被刪光時
範例程式如下
【學生練習題】
範例程式如下
【例題】
一瓶可樂一公升,喝完之後每3個空罐子可以換一個新的可樂
輸入一開始可樂有幾瓶
輸出把所有空瓶都一直換成新可樂總共可以喝到幾公升
1.什麼動作是要一直重複做的? 答:喝掉可樂、把空瓶換成新可樂
2.承上,在什麼條件下才要做? 答:還有可樂能喝時(可樂數量大於零)
範例程式如下
【學生練習題】
上一章:if條件判斷
下一章:for迴圈
回目錄:國立科學園區實驗中學C++程式語言自學講義