【藍橋杯_C】1130: 喵喵啤酒大促銷

題目描述

大家都知道喵嗚大神很能喝酒,最近喵喵啤酒搞促銷,每兩個喵喵啤酒的瓶子能夠換一瓶啤酒,而且這瓶啤酒的瓶子也可以繼續使用,喵嗚大神有個習慣,每次一定要喝完所有啤酒纔去換,若兌換時啤酒瓶數目爲奇數,喵嗚大神就會再買一瓶啤酒,湊成偶數,如果最後只剩一個瓶子了,喵嗚大神就認爲他喝醉了。現在知道喵嗚大神開始時有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;
}

實驗結果:

              

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章