2015 三羊献瑞

三羊献瑞

观察下面的加法算式:

      祥 瑞 生 辉
  +   三 羊 献 瑞
-------------------
   三 羊 生 瑞 气

(如果有对齐问题,可以参看【图1.jpg】)

其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。

请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。
//答案:
 9567
 1085
 10652


题解:暴力。。。。


代码:

#include<iostream>
using namespace std;
int main()
{
	int a,b,c,d,e,f,g,i;
    for(a=1;a<=9;a++)
	{
		for(b=0;b<=9;b++)
		{
			if(a==b)
				continue;
			for(c=0;c<=9;c++)
			{
				if(a==c ||b==c)
					continue;
				for(d=0;d<=9;d++)
				{
					if(a==d||b==d ||c==d)
						continue;
					for(e=1;e<=9;e++)
					{
						if(a==e ||b==e ||c==e||d==e)
							continue;
						for(f=0;f<=9;f++)
						{
							if(a==f ||b==f||c==f||d==f||e==f)
								continue;
                           for(g=0;g<=9;g++)
						   {
                               if(a==g ||b==g||c==g||d==g||e==g||f==g)
								   continue;

								   for(i=0;i<=9;i++)
								   {
									   if(a==i ||b==i||c==i||d==i||e==i||f==i||g==i)
								        continue;
									    if(1000*a+100*b+10*c+d+1000*e+100*f+10*g+b==10000*e+1000*f+100*c+10*b+i)
										{cout<<a<<b<<c<<d<<endl;
											cout<<e<<f<<g<<b<<endl;
											cout<<e<<f<<c<<b<<i<<endl;
										}
									
								   }
							   }
						}
					}
				}

			}
		}
	}
	return 0;
}

或者:

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int main() {
    int s1, s2, s3, c = 0;
    int a[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
    do {
        if (a[0] != 0 && a[4] != 0) {
            s1 = a[0]*1000+a[1]*100+a[2]*10+a[3];
            s2 = a[4]*1000+a[5]*100+a[6]*10+a[1];
            s3 = a[4]*10000+a[5]*1000+a[2]*100+a[1]*10+a[7];
            if (s1 + s2 == s3) {
                printf("s3 = %d\n", s3);
                printf("%d + %d = %d\n", s1, s2, s1+s2);
            } 
        }
        c++;
    }while(next_permutation(a, a+10));
   
    return 0;
}



你可能感兴趣的:(蓝桥杯,2015,三羊献)