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