小韋老師@神犇營-my0061-小碼猿的蘋果
題目:
描述
小碼猿買了一箱蘋果共有 n 個,很不幸的是買完時箱子裡混進了一條蟲子。蟲子每 x 小時能吃掉一個蘋果,假設蟲子在吃完一個蘋果之前不會吃另一個,那麼經過 y 小時這箱蘋果中還有多少個蘋果沒有被蟲子吃過?輸入 n、x、y,輸出答案。
輸入
輸入僅一行,為 n、x、y(0 < n, x, y ≤ 100),兩個數之間用空格隔開。
輸出
輸出僅一行,為沒有被蟲子吃過的蘋果數量。
輸入樣例1
3 2 1
輸出樣例1
2
提示
向上取整可用 ceil 函數,如:ceil(x),x 應為 double 型變量,ceil(x) 的值也為 double 型。
例如:ceil(2.1) 的值為 3題解:
思路:
整體思路:
有 n 個蘋果,每 x 個小時能吃掉一個蘋果,經過 y 個小時能吃掉的蘋果個
數為:ceil(y / x),這裡向上取整的原因是但凡蟲子咬了,我們就認為蘋果
被吃掉了,因為我們不能再吃了。
具體步驟:
1.定義 n, x, y, 并且輸入:
int n; // n 個蘋果
int x; // 每 x 小時能吃掉一個蘋果
int y; // 經過 y 小時
cin >> n >> x >> y;
2.定義一個變量,用來存儲 y / x 的結果(記得将 y 浮點化):
int t = ceil((double)y / x);
3.定義一個變量 ans,用來存儲所剩蘋果的個數,并且将其進行指派:
int ans;
ans = (t < n) ? (n - t) : 0;
4.輸出 ans。
思考:
想一想為什麼要再定義一個 ans,而不是直接将 t 輸出?
完整代碼:
#include <bits/stdc++.h>
using namespace std;
int main() {
int n; // n 個蘋果
int x; // 每 x 小時能吃掉一個蘋果
int y; // 經過 y 小時
cin >> n >> x >> y;
int t = ceil((double)y / x);
int ans;
ans = (t < n) ? (n - t) : 0;
cout << ans;
return 0;
}