1057:
有假币
時間限制(普通/java):1000ms/10000ms
運作記憶體限制:65536kbyte
總送出: 2844
測試通過:773
描述
居然有假币!!!
事情是這樣的,現在豬肉漲了,但是農民的工資卻不見漲啊,沒錢怎麼買豬肉啊。淵子這就去買豬肉,結果找來的零錢中有假币!!!可惜淵子一不小心把它混進了一堆真币裡面去了。現在知道假币的重量比真币的品質要輕。給你一個天平,請用最快的時間把那個可惡的假币找出來。
輸入
1≤n≤230,輸入0結束程式。
輸出
最少要稱幾次一定能把那個假币找出來。
樣例輸入
3
12
樣例輸出
1
提示
示例1中共有3枚硬币,是以任意取2個放天平上稱量一下。
因為假币的重量比較輕。
如果天平不平衡,則較輕的那枚就是假币。
如果天平平衡,則說明這兩枚硬币都是真的,而剩下那枚是假币。
考慮分3堆對該問題最優的特點
做法一:用到了 log 的用法
(int)( log (x) / log (3) )
做法2 就是讓分3堆的數盡量平均
補充一個看到的函數
函數名: ceil
用 法: double ceil(double x);
功 能: 傳回大于或者等于指定表達式的最小整數
頭檔案:
中文名
ceil
用 法
double ceil
功 能
傳回大于等于表達式的最小整數
頭檔案
對第一種解法的簡化