1、汽水瓶
題目描述
有這樣一道智力題:“某商店規定:三個空汽水瓶可以換一瓶汽水。小張手上有十個空汽水瓶,她最多可以換多少瓶汽水喝?”答案是5瓶,方法如下:先用9個空瓶子換3瓶汽水,喝掉3瓶滿的,喝完以后4個空瓶子,用3個再換一瓶,喝掉這瓶滿的,這時候剩2個空瓶子。然后你讓老板先借給你一瓶汽水,喝掉這瓶滿的,喝完以后用3個空瓶子換一瓶滿的還給老板。如果小張手上有n個空汽水瓶,最多可以換多少瓶汽水喝?
輸入描述:
輸入文件最多包含10組測試數據,每個數據占一行,僅包含一個正整數n(1<=n<=100),表示小張手上的空汽水瓶數。n=0表示輸入結束,你的程序不應當處理這一行。
輸出描述:
對於每組測試數據,輸出一行,表示最多可以喝的汽水瓶數。如果一瓶也喝不到,輸出0。
#include <iostream> #include <stdio.h> #include <string.h> #include <math.h> int main() { int nInput = 0; while(scanf("%d", &nInput) != EOF) { if(0 == nInput) { break; } int nDrink = 0; int nRes = 0; int nRem = 0; while(nInput >= 3) { nRes = nInput / 3; nDrink += nRes; nRem = nInput % 3; nInput = nRes + nRem; } if(nInput == 2) { nDrink++; } printf("%d\n", nDrink); } system("pause"); return 0; }