Bit運算
看到這個代碼,我傻了。
我也想過用這種方法來解決這個問題。
但是,我沒有實現,為什么?
因為平時很少寫有關位運算的代碼。
其實這個不是關鍵,因為我對位的運算
不是很熟悉,總感覺是半知半解。
當然用的時候也就用不起了。
教訓呀。
題目:
某電視臺舉辦了低碳生活大獎賽。題目的計分規則相當奇怪: 每位選手需要回答10個問題(其編號為1到10).
答對的,當前分數翻倍;答錯了則扣掉與題號相同的分數(選手必須回答問題,不回答按錯誤處理)。每位選手都有一個起步的分數為10分。
某獲勝選手最終得分剛好是100分,如果不讓你看比賽過程,你能推斷出他(她)哪個題目答對了,哪個題目答錯了嗎?
如果把答對的記為1,答錯的記為0,則10個題目的回答情況可以用僅含有1和0的串來表示。例如:0010110011 就是可能的情況。
你的任務是算出所有可能情況。每個答案占一行。
View Code
#include <cstdio> int main() { char str[11]; int j; for(long i = 0; i < (1 << 10); i++) { int fen = 10; for(j = 0; j < 10; j++) { str[j] = ((i >> j) & 1) + '0'; if(str[j] - '0') fen *= 2; else fen -= j + 1; } str[j] = 0; if(100 == fen) puts(str); } return 0; }
posted on 2012-04-19 22:38 More study needed. 閱讀(229) 評論(0) 收藏 舉報

浙公網安備 33010602011771號