题目描述
经过一番旅途,Vanis回到了原来的世界,现在他只想给自己倒几杯卡布奇诺 (cappuccino)。
商店街有一家咖啡厅,提供两种购买卡布奇诺的方式:
- 支付a元,获得1杯卡布奇诺。
- 支付b元,获得c杯卡布奇诺。
现在Vanis有d元,并且可以无限次任意选择购买方案(只要他的钱还足够),他想知道最多能买几杯卡布奇诺。
输入描述:
第一行输入四个正整数a,\ b,\ c,\ da, b, c, d,相邻整数之间使用一个空格符分隔,含义同题目描述。
数据规范:
- 1 \le a,b,c,d \le 1001≤a,b,c,d≤100.
输出描述:
输出一个整数,表示Vanis最多能够购买的卡布奇诺杯数。
示例1
输入
复制
3 10 3 12
输出
复制
4
说明
3元1杯,10元3杯。Vanis选择4次方案1,可以得到4杯卡布奇诺。如果他选择了方案2,则只能购买3杯,因为剩下的2元钱不足以让他再选择任何方案,显然这样不是最多购买数。
题意思路:比较简单如题面所知,只要是想记录一下比较简洁的一个代码思路吧,比赛那个打的太麻烦了。
代码:
#include<bits/stdc++.h>
using namespace std;
int main ()
{
ios::sync_with_stdio(false);
int a,b,c,d;
cin>>a>>b>>c>>d;
int t1=b/c;
int ans=0;
if(a<=t1){//两种方式比较谁用的钱少,就先用谁,剩下的钱去花另一种,主要注意一下“取余”可以简洁很多。
ans=ans+d/a+((d%a)/b)*c;
}
else{
ans=ans+(d/b)*c+(d%b)/a;
}
cout<<ans<<endl;
return 0;
}