欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

墨汁

程序员文章站 2022-03-09 20:17:03
...

题目描述

小T擅长国画,特别崇拜以画马著称的国画大师徐悲鸿先生,所以小T也很喜欢画马,众所周知画马是需要很多墨汁的,为了节省支出,小T决定参加龙城近墨堂最近推出的以瓶换墨活动,本次活动为期三月,活动期间你可以用M个空墨汁瓶换取一瓶全新包装的墨汁(包装里面有一个瓶,瓶里装满了墨汁),为了方便叙述,下文一律将一瓶全新包装的墨汁简称为一瓶墨汁。近墨堂老板心地非常善良,即使你手头只差一个空瓶他也会换给你一瓶墨汁,条件是你必须在用完这瓶墨汁后将空瓶还给老板,但如果你差两个或两个以上空瓶则老板就不会换给你了。现在,小T手中有N瓶墨汁,请问他通过以瓶换墨最多能够用到多少瓶墨汁?

输入

仅有一行包含两个用空格隔开的自然数N和M(3≤M<N≤100),表示小T手中有N瓶墨汁,近墨堂的以瓶换墨活动规定用M个空墨汁瓶可以换一瓶墨汁。

输出

仅有一行包含一个自然数,表示小T最多能用到多少瓶墨汁。

样例输入

10 3

样例输出

15
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int main(){
	int n,m,t=0,y;//定义 小T手中的墨汁瓶数 为n,用m个 空瓶换一瓶新的墨汁 ,t为 小T最多换几瓶 ,y为 余数 
	cin>>n>>m;//输入 
	while(n>=m){//当小T手中的瓶数大于等于活动规定的空瓶数时,执行以下操作 
		y=n%m;//小T用空瓶换墨之后还多出来的  墨汁瓶数 
		t+=n-y;//总瓶数-余数为小T用完了的  墨汁瓶数 
		n=n/m+y;//小T手中还剩下  空瓶换墨得来的墨汁+余下的墨汁瓶数
	}
	t+=n;//用完不足 m 瓶的墨汁 
	if(m-n==1)
		t++;//如果剩下的 空瓶 差一瓶,还可以再换一瓶,用完之后还给老板 
	cout<<t<<endl;//输出最多能用几瓶 
	return 0;
}

思路挺简单的,但是好像被我写的有点复杂,果然还是不太会表达T - T

相关标签: 入门