奇怪的比賽


某電視臺舉辦了低碳生活大獎賽。題目的計分規則至關奇怪:app

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

每位選手都有一個起步的分數爲10分。code

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

若是把答對的記爲1,答錯的記爲0,則10個題目的回答狀況能夠用僅含有1和0的串來表示。例如:0010110011 就是可能的狀況。io

你的任務是算出全部可能狀況。每一個答案佔一行。console

答案寫在「解答.txt」中,不要寫在這裏!class

 

// tst.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

int a[10];

void dfs(int t, int g)
{
    if(t==11 && g==100)
    {
        for(int i=0;i<10;i++)
            printf("%d",a[i]);
        printf("\n");
        return;
    }
    if(t==11 && g!=100)
        return;

    a[t-1]=1;
    dfs(t+1,g*2);
    a[t-1]=0;
    dfs(t+1,g-t);
    
}

int main(int argc, char* argv[])
{
    dfs(1,10);
    return 0;
}
相關文章
相關標籤/搜索