奇怪的比賽

2021-06-21 03:13:11 字數 1255 閱讀 5542

#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道題

int main()

int next(int id,int cur)

cout << endl;

return 1;

}return 0;

}cnt[id] = 1;

next(id+1,cur << 1); //答對此題,分數倍增

cnt[id] = 0;

next(id+1,cur-id);

return 0;

}

問題描述:

某電視台舉辦了低碳生活大獎賽。題目的計分規則相當奇怪:

每位選手需要回答10個問題(其編號為1到10),越後面越有難度。答對的,當前分數翻倍;答錯了則扣掉與題號相同的分數(選手必須回答問題,不回答按錯誤處理)。

每位選手都有乙個起步的分數為10分。

某獲勝選手最終得分剛好是100分,如果不讓你看比賽過程,你能推斷出他(她)哪個題目答對了,哪個題目答錯了嗎?

如果把答對的記為1,答錯的記為0,則10個題目的回答情況可以用僅含有1和0的串來表示。例如:0010110011 就是可能的情況。

你的任務是算出所有可能情況。每個答案佔一行。

錯誤**:

#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道題

int main()

int next(int id,int cur)

cout << endl;

return 1;

}if(id == 10) //已經答完10道題

{//cout<<"fail" <

錯誤原因:

達到target即輸出結果,但對於達到target後面的題目而言,每道題不是倍增當前分數就是減去題目id,所以不能保證答完所有題後分數仍為target~

奇怪的比賽

某電視台舉辦了低碳生活大獎賽。題目的計分規則相當奇怪 每位選手需要回答10個問題 其編號為1到10 越後面越有難度。答對的,當前分數翻倍 答錯了則扣掉與題號相同的分數 選手必須回答問題,不回答按錯誤處理 每位選手都有乙個起步的分數為10分。某獲勝選手最終得分剛好是100分,如果不讓你看比賽過程,你能...

奇怪的比賽

某電視台舉辦了低碳生活大獎賽。題目的計分規則相當奇怪 每位選手需要回答10個問題 其編號為1到10 越後面越有難度。答對的,當前分數翻倍 答錯了則扣掉與題號相同的分數 選手必須回答問題,不回答按錯誤處理 每位選手都有乙個起步的分數為10分。某獲勝選手最終得分剛好是100分,如果不讓你看比賽過程,你能...

奇怪的比賽

奇怪的比賽 某電視台舉辦了低碳生活大獎賽。題目的計分規則相當奇怪 每位選手需要回答10個問題 其編號為1到10 越後面越有難度。答對的,當前分數翻倍 答錯了則扣掉與題號相同的分數 選手必須回答問題,不回答按錯誤處理 每位選手都有乙個起步的分數為10分。某獲勝選手最終得分剛好是100分,如果不讓你看比...