加载中...

浙江理工大学入队200题——17C

问题 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;
}
posted @ 2022-10-30 11:34  shany212  阅读(48)  评论(0编辑  收藏  举报