算法每日一题 | 入门-分支结构-Apples Prologue/苹果和虫子
Apples Prologue/苹果和虫子
题目描述
小 B 喜欢吃苹果。她现在有 m m m(1 ≤ m ≤100)个苹果,吃完一个苹果需要花费 t t t(0 ≤ t≤ 100)分钟,吃完一个后立刻开始吃下一个。
现在时间过去了 s s s(1 ≤ s ≤ 10000)分钟,请问她还有几个完整的苹果?
输入格式
输入三个非负整数表示 。
输出格式
输出一个整数表示答案。
输入输出样例 #1
输入 #1
50 10 200
输出 #1
30
说明/提示
如果你出现了 RE
,不如检查一下被零除?
C++
首先,八尾勇吃了s/t个苹果,那么问题就来了,第一个坑:如果t是0,那么八尾勇肯定能吃完所有的苹果,输出0,但是0又不能做除数,这种情况要特判。
接着往下想,如果s是t的整数倍,那么八尾勇就吃了s/t个完整的苹果,剩下m−s/t个完整的苹果;如果s并不是是t的整数倍,八尾勇就吃了s/t个完整的苹果和一个残缺的苹果,那么就有s/t+1个苹果不完整了,剩下m−s/t−1个苹果。
可是,第二个坑:说不定他在s秒内就吃完了这堆苹果了呢,那么就没有剩下的苹果,输出0。
上代码:
#include<bits/stdc++.h>//万能头文件
usingnamespacestd;
int m,t,s;
int main()
{cin>>m>>t>>s;if(t==0)//特判t=0的情况{cout<<0<<endl;return0;}if(s%t==0)//如果s是t的整数倍cout<<max(m-s/t,0)<<endl;else//如果不是cout<<max(m-s/t-1,0)<<endl;return0;//程序结束
}
Python
读取输入的三个整数 m、t 和 s,分别代表苹果总数、吃完一个苹果所需时间和已经过去的时间。
接着对 t 为 0 的特殊情况进行处理,若 t 为 0,表明吃苹果不需要时间,此时所有苹果都会被吃完,所以直接输出 0。
对于 t 不为 0 的情况,先计算出吃掉的苹果数,这里要注意如果 s 不能被 t 整除,说明还在吃一个苹果,要把这个苹果也算进去。
最后用苹果总数减去吃掉的苹果数得到剩余完整苹果数,同时要确保结果不小于 0。
m, t, s = map(int, input().split())# 处理 t 为 0 的特殊情况
if t == 0:print(0)
else:# 计算吃掉的苹果数eaten_apples = s // tif s % t != 0:eaten_apples += 1# 计算剩余完整苹果数remaining_apples = max(0, m - eaten_apples)print(remaining_apples)
Java
首先是吃完了剩下0个苹果
其次一个坑点是剩下几个完整的苹果,吃一口就算不完整了
所以是k代表被吃过的苹果,要向上取整
答案为 完整苹果数=苹果数-被吃过的苹果
import java.io.BufferedInputStream;
import java.util.Scanner;publicclass Main {public static void main(String[] args) {Scanner sc=new Scanner(new BufferedInputStream(System.in));int m=sc.nextInt();int t=sc.nextInt();int s=sc.nextInt();int ans;if(m*t<=s) {ans=0;}else {double k=(double)s/t;ans=m-(int)Math.ceil(k);}System.out.println(ans);sc.close();}
}
人们在人生中需要做出许多选择,只有一次次选择后才能带来无限可能,我们要根据自己掌握的情况,做出最佳的选择。