問題
有12枚硬幣。其中11枚真硬幣和1枚假硬幣。假幣和真幣重量不同輸入樣例但不知道假幣比真幣輕還是重。現在,用一架天平稱了這些幣三次
告訴你稱的結果,請你找出假幣並確定假幣是輕還是重(資料保證一定能找出來)
輸入第一行是測試資料組數。
每組資料有三行,每行表示一次稱量的結果。硬幣標號為a-l。每次稱量的結果用三個以空格隔開的字串表示:
天平左邊放置的硬幣 天平右邊放置的硬幣 平衡狀態。其中平衡狀態用「up」, 「down」, 或 「even」表示, 分別為
右端高、右端低和平衡。天平左右的硬幣數總是相等的。
輸出輸出哪乙個標號的硬幣是假幣,並說明它比真幣輕還是重。
3輸出樣例abcd efgh even
abci efjk up
abij efgh even
k is the counterfeit coin and it is light解題思路:
對於每一枚硬幣先假設他是輕的,看這樣是否符合稱量結果。如果符合,問題即解決。如果不符合就假設他是重的,看是否符合稱量結果。把所有硬幣都試一遍,一定能找到特殊硬幣**:
#incude
#include
using
namespace std;
char left[3]
[7];
//天平左邊硬幣
char right[3]
[7];
//天平右邊硬幣
char result[3]
[7];
//結果
bool
isfake
(char c,
bool right)
;//light為真表示假設假幣為輕,否則表示假設假幣圍為重
intmain()
elseif(
isfake
(c,false))
}}bool
isfake
(char c,
bool light)
//light為真表示假幣為輕,否則假幣為重
else
switch
(result[i][0
])}return0;
}
稱硬幣 列舉
描述 莎莉瓊斯有一打旅行者銀幣。然而,只有十一枚硬幣是真正的銀元 一枚硬幣是假的,儘管它的顏色和大小使它與真正的銀元無法區分。假幣的重量與其他硬幣不同,但薩利不知道它比真正的硬幣重還是輕。令人高興的是,薩莉有乙個朋友,他借給她乙個非常精確的天平。這位朋友將允許薩利三次稱重以找到那枚偽幣。例如,如果莎...
列舉 稱硬幣
題目 有12枚硬幣。其中有11枚真幣和1枚假幣。假幣和真 幣重量不同,但不知道假幣比真幣輕還是重。現在,用一架天平稱了這些幣三次,告訴你稱的結果,請你找出假幣並且確定假幣是輕是重 資料保證一定能找出來 輸入第一行是測試資料組數。每組資料有三行,每行表示一次稱量的結果。銀幣標號為 a l。每次稱量的結...
(列舉 稱硬幣
有12枚硬幣。其中有11枚真幣和1枚假幣。假幣和真 幣重量不同,但不知道假幣比真幣輕還是重。現在,用一架天平稱了這些幣三次,告訴你稱的結果,請你.找出假幣並且確定假幣是輕是重 資料保證一定能找 出來 輸入樣例 1 1組測試資料,每組測試資料有三行 abcd efgh even even平,up右邊高...