低碳生活大獎(jiǎng)賽
題目:某電視臺舉辦了低碳生活大獎(jiǎng)賽初坠。題目的計(jì)分規(guī)則相當(dāng)奇怪:
(1)每位選手需要回答10個(gè)問題(其編號為1到10),越后面越有難度星澳。答對的吁讨,當(dāng)前分?jǐn)?shù)翻倍髓迎;答錯(cuò)了則扣掉與題號相同的分?jǐn)?shù)(選手必須回答問題,不回答按錯(cuò)誤處理)建丧。
(2)每位選手都有一個(gè)起步的分?jǐn)?shù)為10分排龄。 某獲勝選手最終得分剛好是100分,如果不讓你看比賽過程翎朱,你能推斷出他(她)哪個(gè)題目答對了涣雕,哪個(gè)題目答錯(cuò)了嗎?
(3)如果把答對的記為1闭翩,答錯(cuò)的記為0挣郭,則10個(gè)題目的回答情況可以用僅含有1和0的串來表示。例如:0010110011 就是可能的情況疗韵。
(4) 你的任務(wù)是算出所有可能情況兑障。每個(gè)答案占一行。
//低碳生活大獎(jiǎng)賽
#include<stdio.h>
#include<math.h>
int main(){
int a[10]={0};
int i,j,num,score;
for(i=0;i<pow(2,10);i++){
for(j=0;j<10;j++){ //每次把數(shù)組都初始化為0
a[j]=0;
}
score=100;
num=i;
for(j=9;j>=0;j--){ //把十進(jìn)制的整數(shù)變?yōu)槎M(jìn)制的0蕉汪、1代碼流译,放入數(shù)組中
a[j]=num%2;
if(a[j]==1){ //從100分,反向回推
score/=2;
}
if(a[j]==0){
score+=j+1;
}
num/=2;
}
if(score==10){ //如果回推結(jié)束后者疤,score正好為10福澡,那么這種情況符合條件
for(j=0;j<10;j++){ //把這種情況打印出來
printf("%d",a[j]);
}
printf("\n");
}
}
return 0;
}
1組成的整數(shù)可以被2011整除
#include<Stdio.h>
int main()
{
int i,temp;
i=5;
p=11111;
while(p!=0){
p=p*10+1;
p=p%2011;
i=i+1;
}
printf("%d\n",i);
return 0;
}