天天看點

小韋老師@神犇營-my0061-小碼猿的蘋果小韋老師@神犇營-my0061-小碼猿的蘋果

小韋老師@神犇營-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;
}
           

繼續閱讀