#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分,如果不讓你看比...