Problem C: 三羊献瑞
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 5 Solved: 3
[ Submit][ Status][ Web Board] [ Edit] [ TestData]
Description
观察下面的加法算式:
祥 瑞 生 辉
+
三 羊 献 瑞
-------------------
三 羊 生 瑞 气
其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。 请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。
Input
Output
HINT
思路:这是前几天做的草稿。。把要求输出的三样献瑞满足的唯一一个输出来。。我发现有好几个。但是第一个首个数字不能是0。。对于不同的汉子可以看成一个变量,然后不同变量不取相同的数字。。可以看下面代码,应该很好理解了
#include<iostream>
using namespace std;
int main()
{
int a,b,c,d,e,f,g,i;
for(a=0;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=0;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;
}