天天看點

1057: 有假币

                               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

功    能

傳回大于等于表達式的最小整數

頭檔案

  對第一種解法的簡化