oj1663: Sodaflaschen

Themen Anforderungen
gibt es so ein Rätsel: „a store heißt es :.? Drei leere PET - Flaschen für eine Flasche Soda Zhang kann zehn leere PET - Flaschen auf der Hand haben, können sie sich, wie viele Flaschen Soda bis zu trinken ändern“ Die Antwort fünf Flaschen ist, wie folgt: die ersten für 3 Flaschen Soda mit neun leeren Flaschen, Getränkeflaschen 3 voll, leere Flaschen nach 4, mit der Flasche trinkt 3 und zurück, diese Getränk Flasche voll ist , und diese Zeit leer gelassen 2 Flasche. Dann lassen Sie den Chef Ihnen eine Flasche Soda zu verleihen, trinken Sie diese Flasche voll, nachdem sie für eine Flasche zu trinken mit drei leeren Flaschen zurück zum Chef gefüllt. Wenn n die Hände von Zhang leeren PET - Flaschen sind, PET - Flaschen können die maximale Anzahl von Getränk ändern?
Input
Eingabedatei enthält bis zu 10 Testfälle, wobei jedes Datum pro Zeile, wobei nur eine positive ganze Zahl n (1 <= n <= 100), gibt die Anzahl der leeren Flasche Dampf Zhang Hand. n = 0 zeigt das Ende der Eingabe, soll Ihr Programm nicht mit dieser Linie befassen.
Ausgang
Für jeden Test einer Ausgangsleitung, stellt die Flasche zu trinken. Wenn Sie eine Flasche weniger als 0 trinken ausgegeben.
Die Eingabe der Probe
Rohmaterial
3
10
81
0
die Probe des Ausgang
Raw
1
5
40
Die Idee ist einfach, ein Stapel von leeren Flaschen minus 3, plus eine volle Flasche, leere Flasche als 02.00 bekannt ist, kann einen Vorsprung borgen, plus eine volle Flasche reicht.

#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
#include<queue>
#include<math.h>
#include<stdio.h>
#include<string.h>
using namespace std;
int main()
{
	int n,m;
	while(cin>>m)
	{
		n=0;
		if(m==0)break;
		while (m - 3 >= 0)
		{
			m = (m - 3) + 1;
			n++;
		}
		if (2 == m)
			n = n + 1;
		cout<<n<<endl;
	}
	return 0;
}
Veröffentlicht 38 Originalarbeiten · erntete Lob 27 · Ansichten 3179

Ich denke du magst

Origin blog.csdn.net/qq_45891413/article/details/105018892
Empfohlen
Rangfolge