In Zhejiang University, there is a famous BBS named Freecity. Usually we call it 88.
Recently some students at the Humour board on 88 create a new game - Swordsmanship. Different from the common sword fights, this game can be held with three players playing together in a match. Only one player advances from the match while the other two are eliminated. Sometimes they also hold a two-player match if needed, but they always try to hold the tournament with as less matches as possible.
Input
The input contains several test cases. Each case is specified by one positive integer n (0 < n < 1000000000), indicating the number of players. Input is terminated by n=0.
Output
For each test case, output a single line with the least number of matches needed to decide the champion.
Sample Input
3
4
0
Sample Output
1
2
Author: XUE, Zaiyue
Source: Zhejiang University Local Contest 2007, Preliminary
Sometimes they also hold a two-player match if needed, but they always try to hold the tournament with as less matches as possible.(有时,如果有必要的话,也举行一场两人的比赛,但是他们通常尽量让比赛的场次达到最少),就是两个人的比赛只会在最后举行,之前如果有剩余两个人的话,直接让他们晋级。(貌似不太符合常理,但就是这样)
ac代码:
#include <iostream>
#include<cstdio>
using namespace std;
int main()
{
int n;
int a,b,c;
while(scanf("%d",&n)&&n)
{
int sum=0;
while(true)
{
if(n==1)
{
printf("%d\n",sum);
break;
}
else if(n==2)
{
printf("%d\n",sum+1);
break;
}
else
{
a=n/3;
b=n%3;
n=a+b;
sum+=a;
}
}
}
return 0;
}