[c++]循环经典问题1--喝饮料

原题

描述

小K来到一家超市,发现超市的正在对一种饮料做活动,这种饮料xx元一瓶。有意思的是,可以用yy个空瓶子再换一瓶,而且可以向服务员借空瓶子,但一定要还给他们。小K想,如果把他身上的nn元钱都用来买饮料,并且再用空瓶子换(如果可以,他能一直换下去),他最多能喝到多少瓶饮料? 

输入

每组数据一行,包含三个正整数n,x,y(y>1)n,x,y(y>1)。

输出

输出小K最多可以喝到饮料瓶数。 

样例

In: 1 3 6 3

Out: 3

题解

    啥也不说,先上代码一份:

#include<bits/stdc++.h>
#define ll long long
#define MA 110
using namespace std;
ll n,x,y,ans;
int main(){
	cin>>n>>x>>y;
	int k=n/x;
	ans+=k;
	while(k>=y){
		ans+=k/y;
		k=k/y+k%y;
		
	}
	if(k+1==y)ans++;   //要进行特判
	cout<<ans;
	return 0;
}

    这道题考察的就是简单的模拟,记住最后要进行特判(这是很多较有难度的模拟题特别需要注意的)。 

    真应该没什么好讲的,有不懂的可以在评论区留言。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值