蓝桥杯 古堡算式



    福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:
    ABCDE * ? = EDCBA
    他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!”

    华生:“我猜也是!”

    于是,两人沉默了好久,还是没有算出合适的结果来。

    请你利用计算机的优势,找到破解的答案。

    把 ABCDE 所代表的数字写出来。

    答案写在“解答.txt”中,不要写在这里! 


解题思路:1.要求ABCDE能被EDCBA整除
     2.ABCDR不能相同
#include<iostream>
#include<string>
#include<cstdio>
using namespace std;

bool fun(char s[])
{
    for(int i = 0;i<5;i++)
        for(int j = i+1;j<5;j++)
            if(s[j] == s[i])
            {
                return false;
                break;
            }
    return true;
}

int main()
{
    char s[6];
    int i,a,b,c,d,e,sum;
    for(i = 10000;i<100000;i++)
    {
        a = i % 10;
        b = i / 10 % 10;
        c = i / 100 % 10;
        d = i / 1000 % 10;
        e = i / 10000 % 10;
        sum = 10000*a + 1000*b + 100*c + 10*d + e;
        sprintf(s,"%d",sum);
        if(sum % i ==0 && fun(s))
        {
            cout<<"i = "<<i<<endl;
        }
    }
    return 0;
}

 

 
posted @ 2018-02-26 08:33  ZZUGPY  阅读(167)  评论(0编辑  收藏  举报