2010年3月24日 星期三

Problem 11150 Cola,愛喝可樂的你

此題為簡單題目一枚,由於商店有著三瓶空瓶可樂換一瓶的活動,所以愛喝可樂的人有福了,正好,你就是那位愛喝可樂的人,而你可以跟你的朋友多借幾瓶空瓶子,再多換幾瓶可樂,但前提是,要有借有還。所以你必須寫一個程式,輸入整數 n,n 為所要買的可樂數,而要輸出你最多能喝到幾瓶可樂。

其實想一想就知道,你能跟朋友借的可樂數最多只一瓶,借兩瓶你絕對還不起,所以我用一個迴圈讓它自己把瓶子數算到 3 瓶以下,再判斷它瓶子數是否剩 2 瓶,若剩 2 瓶,可跟朋友借 1 瓶空瓶,再多換 1 瓶可樂,把這杯可樂喝完,再還這個空瓶給他。寫成如以下程式碼:
int i ,total = n, recode;
for (; n > 2;)
{
total += n / 3;
recode = n / 3;
n = n % 3 + recode;
}
if (n == 2) total ++;
printf("%d\n", total);

By David.K

p11150題目連結
回ACM題庫目錄
回首頁

2 則留言:

Will 日知錄 提到...

非常有用也很有趣的講解,很高興還能遇到在解UVa題目的同好 XD

David Kuo 提到...

謝謝您的誇獎,我也是現在才知道也有人跟我一樣的熱衷於 UVa。