04-04排列問題_奇怪的比賽
阿新 • • 發佈:2017-06-21
pri false ipp san con ron print 必須 popu
奇怪的比賽
某電視臺舉辦了低碳生活大獎賽。
題目的計分規則相當奇怪:
每位選手須要回答10個問題(其編號為1到10)。越後面越有難度。答對的。當前分數翻倍;答錯了則扣掉與題號同樣的分數(選手必須回答問題,不回答按錯誤處理)。
每位選手都有一個起步的分數為10分。
某獲勝選手終於得分剛好是100分,假設不讓你看比賽過程。你能判斷出他(她)哪個題目答對了,哪個題目答錯了嗎?
假設把答對的記為1。答錯的記為0,則10個題目的回答情況能夠用僅含有1和0的串來表示。
比如:0010110011 就是可能的情況。
你的任務是算出全部可能情況。
每一個答案占一行。
public class MyA { // 當前分數=score, 正要回答k號題目 static void f(int score, boolean[] buf, int k) { if(k==11){ if(score==100){ for(int i=1; i<buf.length; i++) System.out.print(buf[i]? 1 : 0); System.out.println(); } return; } buf[k] = true; // 如果答對了 f(score * 2, buf, k+1); buf[k] = false; // 答錯了 f(score - k, buf, k+1); } public static void main(String[] args) { boolean[] buf = new boolean[11]; //第0號不用,題號從1開始 f(10,buf,1); } }
04-04排列問題_奇怪的比賽