題目描述
大家都知道喵嗚大神很能喝酒,最近喵喵啤酒搞促銷,每兩個喵喵啤酒的瓶子能夠換一瓶啤酒,而且這瓶啤酒的瓶子也可以繼續使用,喵嗚大神有個習慣,每次一定要喝完所有啤酒纔去換,若兌換時啤酒瓶數目爲奇數,喵嗚大神就會再買一瓶啤酒,湊成偶數,如果最後只剩一個瓶子了,喵嗚大神就認爲他喝醉了。現在知道喵嗚大神開始時有N瓶啤酒,他想知道他喝醉了的時候一共喝掉了多少瓶。
輸入
給一個整數N,1<=N<=100,代表喵嗚大神開始時有多少瓶啤酒
輸出
一個整數,表示喵嗚大神醉了的時候一共喝了多少瓶啤酒
樣例輸入
6
樣例輸出
13
提示
喵嗚最開始有6瓶啤酒,他喝光以後用6個瓶子換了3瓶啤酒。喝掉這3瓶以後,他只有奇數個瓶子(3個),所以他又買了一瓶喝掉,這時他有4個瓶子。然後他用4個瓶子換了2瓶啤酒喝掉,又用這2個瓶子換了1瓶啤酒喝掉。所以他總共喝了13瓶
代碼如下:
#include<stdio.h>
int main()
{
int n;
int count=0;
while(~scanf("%d",&n))
{
if(n==1)
printf("%d\n",count+1);
else
{
while(n!=1)
{
if(n%2==0)
{
count+=n;
n=n/2;
}
else
{
count+=n+1;
n=(n+1)/2;
}
if(n==1)break;
}
printf("%d\n",count+1);
}
count=0;
}
return 0;
}
實驗結果: