ブルーブリッジカップ - 質問の2012 C ++ A第二セット:城の式[列挙]

I、題し

    ホームズ奇妙式の扉に書かれた見て、探検するの城:

    ABCDE *?= EDCBA

    彼は中国で生まれた、言った:「ABCDEもデジタルに代わって、異なる数、疑問符を表している必要があります!」

    ワトソン:「私はそう思います!」

    このように、長い時間のための沈黙の二つは、右の結果を計算することができませんでした。

    答えの亀裂を見つけ、コンピュータを利用してください。

    数値はABCDEの書き込みを表しています。

    ここに書いてはいけませんあなたの答え「.txtの答えを」書きます! 

第二に、アイデア

直接的な暴力列挙。

なお、Aは最初の番号、1-9のように範囲、他の図0-9の範囲であるため、ことに留意されたいです。

そして、範囲は、「?」2-9です

そして、他の番号の各番号は同じにすることはできません。

第三に、問題解決

#include <iostream>
using namespace std;

int main()
{
    for(int a=1;a<=9;a++)
    {
        for(int b=0;b<=9;b++)
        {
            if(a==b)
                continue;
            for (int c=0;c<=9;c++)
            {
                if(c==a || c==b)
                    continue;
                for(int d=0;d<=9;d++)
                {
                    if(d==c || d==b || d==a)
                        continue;
                    for (int e=0; e<=9;e++)
                    {
                        if(e==d || e==c || e==b || e==a)
                            continue;
                        for(int f=2;f<=9 ;f++)
                        {
                            if(f==e || f==d || f==c || f==b || f==a)
                                continue;
                            if((a*10000+b*1000+c*100+d*10+e)*f == (e*10000+d*1000+c*100+b*10+a))
                            {
                                cout << a*10000+b*1000+c*100+d*10+e << endl;
                            }
                        }
                    }
                }
            }
        }
    }
    return 0;
}

 

第四に、結果

公開された57元の記事 ウォンの賞賛9 ビュー3591

おすすめ

転載: blog.csdn.net/Jayphone17/article/details/104226144