问题 C: 零基础学C/C++182——墨汁
题目描述
小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,先10/3=3,3+10%3=4,4/3=1,1+4%3=2,2=3-1 故总数为10+4+1=15
模拟一遍就好了
代码(AC)
点击查看代码
#include <stdio.h>
int main ()
{
int m,n;
while (scanf("%d%d",&m,&n)!=EOF)//M瓶墨汁,N瓶空墨汁可以换一墨汁
{
int sum=m;
while(m>=n)
{
sum+=m/n;
m=m%n+m/n;
}
if(m==n-1) sum++;
printf("%d\n",sum);
}
return 0;
}