蓝桥杯——2012年C++A组第2题:古堡算式【枚举】

一、题目

    福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:

    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