#include<bits/stdc++.h>
#define fi first
#define se second
#define pb push_back
#define PII pair<int,int >
#define int long long
#define IOS std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
using namespace std;
const int N = 1e6+10;
int va[N];
signed main()
{
IOS;
int n,m,k;
cin>>n>>m>>k;
int a;//mai de ping shu
a=n/m;
int b;//dui huan de ping shu
int d;//sheng yu de ping shu
int e=0;//he de ping shu
for(int i=1;i<=n;i++)
{
b=(a+1)/k;
d=b+(a+1)%k;
a=d-1;
e=e+b;
if(b==0)
{
a==d;
break;
}
}
cout<<e+(n/m)<<" "<<a;
return 0;
}
题目描述
小张一共有n元钱,吧唧吧唧超市的汽水卖m元一瓶,但是每k个瓶盖可以换一瓶汽水。
但是小张和老板比较熟悉,小张最多可以向老板借1个瓶盖,但是要保证最后能还回去1个瓶盖。
问你小张最后可以喝几瓶汽水,最后还剩几个瓶盖?
输入
一行三个整数:n,m,k 不超过10^9
输出
输出小张喝了多少瓶水,还剩几个瓶盖。
样例输入
10 2 3
样例输出
7 1
#include<bits/stdc++.h>
#define fi first
#define se second
#define pb push_back
#define PII pair<int,int >
#define int long long
#define IOS std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
using namespace std;
const int N = 1e6+10;
int va[N];
signed main()
{
IOS;
int n,m,k;
cin>>n>>m>>k;
int sum1=n/m,sum2=n/m;
while(1)
{
if(sum2<k) break;
int cnt=sum2/k;
sum1=sum1+cnt;
sum2=sum2%k+cnt;
}
if(sum2==k-1)
{
sum1=sum1+1;
sum2=0;
}
cout<<sum1<<" "<<sum2;
return 0;
}