開啟章節選單
題目 5 題解
解題想法
在本章節提到,我們可以利用 break
和 continue
來分別結束迴圈和跳過迴圈,我們也可以把此兩功能運用在實作中。
從題目敘述中,我們可以把貨物歸納為三個條件:
- 如果目前貨物良好,就繼續迴圈
- 如果目前貨物不良,就跳過迴圈
- 如果目前貨物腐爛,就停止迴圈
舉以下程式為例,我們將 res[i]
設定為第 i
個貨物,剛剛提到的三個條件都可以列入迴圈中:
for (int i = 0; i < n; i++) { if (res[i] > 0) ans++; else if (res[i] == 0) continue; else break; }
最後迴圈跑完後再輸出答案即可。
範例程式
#include <bits/stdc++.h> using namespace std; int main() { int n, ans = 0, res[1005]; cin >> n; for (int i = 0; i < n; i++) cin >> res[i]; for (int i = 0; i < n; i++) { if (res[i] > 0) ans++; else if (res[i] == 0) continue; else break; } cout << ans << '\n'; return 0; }