题目描述
大家都知道喵呜大神很能喝酒,最近喵喵啤酒搞促销,每两个喵喵啤酒的瓶子能够换一瓶啤酒,而且这瓶啤酒的瓶子也可以继续使用,喵呜大神有个习惯,每次一定要喝完所有啤酒才去换,若兑换时啤酒瓶数目为奇数,喵呜大神就会再买一瓶啤酒,凑成偶数,如果最后只剩一个瓶子了,喵呜大神就认为他喝醉了。现在知道喵呜大神开始时有N瓶啤酒,他想知道他喝醉了的时候一共喝掉了多少瓶。
输入
给一个整数N,1<=N<=100,代表喵呜大神开始时有多少瓶啤酒。多组数据。
输出
一个整数,表示喵呜大神醉了的时候一共喝了多少瓶啤酒
样例输入
6
样例输出
13
#include<stdio.h>
int main()
{
int N,sum=0;
while(~scanf("%d",&N))
{
if(N==1)
printf("%d\n",sum+1);
else
{
while(N!=1)
{
if(N%2==0)
{
sum+=N;
N=N/2;
}
else
{
sum+=N+1;
N=(N+1)/2;
}
if(N==1) break;
}
printf("%d\n",sum+1);
}
sum=0;
}
return 0;
}