開啟章節選單
史萊姆生態區
解題想法
本題目有使用到迴圈的判斷技巧,用 for
和 while
都可以實作此題,目前會先以 while
的做法為主。
1. 找出答案
在題目敘述中,題目要求我們輸出所經過的天數,而我們可以從史萊姆王和其生成的史萊姆找出關係:
因此我們可以得知:
我們的目標就是要把天數算出來。
2. 迴圈設置
首先添加兩個變數 tmp
和 ans
,代表目前的史萊姆數量和答案:
int tmp = 0, ans = 0;
在本章節有提到,我們可以設定 while
的跳脫條件,所以我們可以設定 while
迴圈如下:
while (tmp != t) { tmp += n + tmp; ans++; }
此迴圈會執行兩個動作:
- 增加史萊姆
tmp += n + tmp;
- 添加答案天數
ans++;
這個迴圈會在 tmp
等於目標史萊姆數量 t
時停止,即獲得答案。
範例程式
#include <bits/stdc++.h> using namespace std; int main() { int n, t, tmp = 0, ans = 0; cin >> n >> t; while (tmp != t) { tmp += n + tmp; ans++; } cout << ans; return 0; }