温馨提示:更多精彩内容请关注微信公众号zstu就业
小T擅长国画,特别崇拜以画马著称的国画大师徐悲鸿先生,所以小T也很喜欢画马,众所周知画马是需要很多墨汁的,为了节省支出,小T决定参加龙城近墨堂最近推出的以瓶换墨活动,本次活动为期三月,活动期间你可以用M个空墨汁瓶换取一瓶全新包装的墨汁(包装里面有一个瓶,瓶里装满了墨汁),为了方便叙述,下文一律将一瓶全新包装的墨汁简称为一瓶墨汁。近墨堂老板心地非常善良,即使你手头只差一个空瓶他也会换给你一瓶墨汁,条件是你必须在用完这瓶墨汁后将空瓶还给老板,但如果你差两个或两个以上空瓶则老板就不会换给你了。现在,小T手中有N瓶墨汁,请问他通过以瓶换墨最多能够用到多少瓶墨汁?
输入
仅有一行包含两个用空格隔开的自然数N和M,表示小T手中有N瓶墨汁,近墨堂的以瓶换墨活动规定用M个空墨汁瓶可以换一瓶墨汁。
输出
仅有一行包含一个自然数,表示小T最多能用到多少瓶墨汁。
样例输入 Copy
【样例输入1】 10 3 【样例输入2】 10 4
样例输出 Copy
【样例输出1】 15 【样例输出2】 13
提示
样例1中用3个空墨汁瓶可以换取一瓶墨汁,开始是有10瓶墨汁,他全部用完后拿其中的9个空瓶换3瓶墨汁,换来的3瓶用完后再拿这3个空瓶换1瓶墨汁,再用完后他拿最后2个空瓶去换1瓶墨汁,将这瓶用完后把空瓶还给老板即可,这样他一共可以用15瓶
【数据范围】
对于50%的数据满足 1<=N<=10 2<=M<=3
对于100%的数据满足 1<=N<=100 2<=M<=10
#include<stdio.h>
int main()
{
int n,m,t,y;
scanf("%d%d",&n,&m);
t=n;
while(n>=m)
{
y=n%m;
t=(n-y)/m+t;
n=n/m+y;
}
if(m-n==1)
{
t=t+1;
}
printf("%d\n",t);
return 0;
}