仍然是藍橋杯問題——奇怪的比賽
某電視台舉辦了低碳生活大獎賽。題目的計分規則相當奇怪:每位選手需要?回答10個問題(其編號為1到10),越後面越有難度。答對的,當前分數翻倍;答錯了則扣掉與題號相同的分數(選手必須回答問題,不回答按錯誤處理)。?每位選手都有乙個起步的分數為10分。某獲勝選手最終得分剛好是100分,如果不讓你看比賽過程,你能推斷出他(她)哪個題目答對了,哪個題目答錯了嗎?如果把答對的記為1,答錯的記為0,則10個題目的回答情況可以用僅含有1和0的串來表示。這個題其實和之前的李白打酒問題類似,都是用遞迴來求解,但是前者只需要知道幾種方案,這個需要將所有的方案列出來。
public
class strangecompetition
public
static
void
compete(int problems, int score)
system.out.println("]");
return;
} else
}// 題目做錯
result[problems] = 0;
compete(problems + 1, score - problems - 1);
// 題目作對
result[problems] = 1;
compete(problems + 1, score * 2);
}}
最後的輸出結果是
[0010110011]
[0111010000]
[1011010000]
奇怪的比賽
某電視台舉辦了低碳生活大獎賽。題目的計分規則相當奇怪 每位選手需要回答10個問題 其編號為1到10 越後面越有難度。答對的,當前分數翻倍 答錯了則扣掉與題號相同的分數 選手必須回答問題,不回答按錯誤處理 每位選手都有乙個起步的分數為10分。某獲勝選手最終得分剛好是100分,如果不讓你看比賽過程,你能...
奇怪的比賽
include include include include include includeusing namespace std const int target 100 int globalcnt 0 int cnt 11 int next int id,int cur 開始答第id道題 in...
奇怪的比賽
某電視台舉辦了低碳生活大獎賽。題目的計分規則相當奇怪 每位選手需要回答10個問題 其編號為1到10 越後面越有難度。答對的,當前分數翻倍 答錯了則扣掉與題號相同的分數 選手必須回答問題,不回答按錯誤處理 每位選手都有乙個起步的分數為10分。某獲勝選手最終得分剛好是100分,如果不讓你看比賽過程,你能...