藍橋杯 奇怪的比賽

2022-04-29 18:48:10 字數 1156 閱讀 3385

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

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

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

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

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

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

看似簡單,其實10層迴圈寫起來麻煩的乙個題……

所以這題就體現出了遞迴的妙處。

1 #include2 #include3 #include4

5int score(int *a)//

把複雜問題用乙個個函式分解的如此簡單614

else

1518}19

if(s==100)//

最終得分是100

20return1;

21else

22return0;

23}2425

void show(int *a)//

條理清晰

2632 printf("\n"

);33}34

35void sovle(int *a,int n)//

遞迴的妙用

3643

return;//

只要回答完10道題在這都要return,因為sovle函式是乙個遞迴函式44}

45 a[n]=1;//

第一題回答正確

46 sovle(a,n+1);//

遞迴進入第二題

47 a[n]=0;//

返回後再看第一題錯誤的情況

48 sovle(a,n+1);//

在進行遞迴49}

5051

intmain()

52

奇怪的比賽 藍橋杯

這是2012年藍橋杯全國軟體大賽預賽 c 本科組 的第4題,情景是乙個計分規則奇怪的比賽,問題是已知總分得到每題的回答情況。某電視台舉辦了低碳生活大獎賽。題目的計分規則相當奇怪 每位選手需要回答10個問題 其編號為1到10 越後面越有難度。答對的,當前分數翻倍 答錯了則扣掉與題號相同的分數 選手必須...

奇怪的比賽 藍橋杯

這是2012年藍橋杯全國軟體大賽預賽 c 本科組 的第4題,情景是乙個計分規則奇怪的比賽,問題是已知總分得到每題的回答情況。某電視台舉辦了低碳生活大獎賽。題目的計分規則相當奇怪 每位選手需要回答10個問題 其編號為1到10 越後面越有難度。答對的,當前分數翻倍 答錯了則扣掉與題號相同的分數 選手必須...

藍橋杯 奇怪的比賽

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