蓝桥杯 2011年第二届C语言初赛试题(4)
生活随笔
收集整理的這篇文章主要介紹了
蓝桥杯 2011年第二届C语言初赛试题(4)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
4、某電視臺舉辦了低碳生活大獎賽。題目的計分規則相當奇怪:
? ? 每位選手需要回答10個問題(其編號為1到10),越后面越有難度。答對的,當前分數翻倍;答錯了則扣掉與題號相同的分數(選手必須回答問題,不回答按錯誤處理)。
? ? 每位選手都有一個起步的分數為10分。
? ? 某獲勝選手最終得分剛好是100分,如果不讓你看比賽過程,你能推斷出他(她)哪個題目答對了,哪個題目答錯了嗎?
? ? 如果把答對的記為1,答錯的記為0,則10個題目的回答情況可以用僅含有1和0的串來表示。例如:0010110011 就是可能的情況。?
? ? 你的任務是算出所有可能情況。每個答案占一行。
思路:將00000000到11111111看成二進制,然后在main()中從1到1023遍歷,判斷10進制對應的二進制是否滿足條件。
代碼:
#include<stdio.h> #include<string.h> void getScore(int num) {int ques[11],i,sum;memset(ques,0,sizeof(ques));i=1;while(num){ques[i++]=num%2;num/=2;}sum=10;for(i=1;i<=10;i++){if(ques[i]==1){sum*=2; }else{sum-=i;}}if(sum==100){for(i=1;i<=10;i++){printf("%d",ques[i]);}printf("\n");}return ; } int main() {int i;for(i=0;i<1024;i++){getScore(i);}return 0; }總結
以上是生活随笔為你收集整理的蓝桥杯 2011年第二届C语言初赛试题(4)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蓝桥杯 2011年第二届C语言初赛试题(
- 下一篇: true,false组合问题