題幹:一共十二枚銀幣,一枚假的,注意就一枚是假的,假幣重量與真幣不同。通過三次稱重來判別真假硬幣,並判斷比真的輕還是重,測量結果,up,down,even分別表示右盤輕了,右盤重了,平衡。硬幣用a~l表示;
解題思路:列舉假設硬幣是輕的,看是否符合每乙個測量結果,符合這枚硬幣就是假硬幣,輕;否則假設硬幣是重的,看是否符合每乙個測量結果,把所有的硬幣測量一邊,即可以找到結果
//三組左盤硬幣
char r[3]
[7];
//三組右盤硬幣
char result[3]
[7];
//三組結果
bool
isfake
(char c,
bool light)
//列舉假設每個硬幣都是輕的 指狀態為up 即右邊輕
else
//當左邊輕的時候 交換兩個盤
switch
(result[i][0
])//檢查輸入結果
}return
true
;//只有在up或down中找到了這枚硬幣,並在even中沒有 return true;
}int
main()
elseif(
isfake
(c,false))
//假設硬幣重了 }}
return0;
}
列舉 假幣問題
有12枚硬幣。其中有11枚真幣和1枚假幣。假幣和真幣重量不同,但不知道假幣比真幣輕還是重。現在,用一架天平稱了這些幣三次,告訴你稱的結果,請你找出假幣並且確定假幣是輕是重 資料保證一定能找出來 輸入 第一行是測試資料組數。每組資料有三行,每行表示一次稱量的結果。銀幣標號為a l。每次稱量的結果用三個...
列舉問題 POJ畫家問題
列舉 poj畫家問題 poj 畫家問題 測試 input 3yyy yyyyyy output 0input 5wwwww wwwww wwwww wwwww wwwww output 15 include include using namespace std int min painting b...
POJ熄燈問題(列舉法)
題目 有乙個由按鈕組成的矩陣,其中每行有6個按鈕,共5行。每個按鈕的位置上有一盞燈。當按下乙個按鈕後,該按鈕以及周圍位置 上邊 下邊 左邊 右邊 的燈都會改變一次。即,如果燈原來是點亮的,就會被熄滅 如果燈原來是熄滅的,則會被點亮。在矩陣角上的按鈕改變3盞燈的狀態 在矩陣邊上的按鈕改變4盞燈的狀態 ...