您的位置:首页 > 其它

1-三羊献瑞(暴力)

2018-03-11 14:41 204 查看

问题描述:

三羊献瑞观察下面的加法算式:

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

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

请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。答案:1085代码解析:#include <iostream>
using namespace std;
int main()
{
int a,b,c,d,e,f,g,h;//分别代表不同的数字
int x,y,z;//用于判断的
int vis[10]= {0}; //用来标记数字是否使用过
for(a=1; a<10; a++)
{
vis[a]=1;
for(b=0; b<10; b++)
{
if(vis[b]==1)continue;
vis[b]=1;
for(c=0; c<10; c++)
{
if(vis[c]==1)continue;
vis[c]=1;
for(d=0; d<10; d++)
{
if(vis[d]==1)continue;
vis[d]=1;
for(e=1; e<10; e++)
{
if(vis[e]==1)continue;
vis[e]=1;
for(f=0; f<10; f++)
{
if(vis[f]==1)continue;
vis[f]=1;
for(g=0; g<10; g++)
{
if(vis[g]==1)continue;
vis[g]=1;
for(h=0; h<10; h++)
{
if(vis[h]==1) continue;
vis[h]=1;
x=1000*a+100*b+10*c+d;
y=1000*e+100*f+10*g+b;
z=10000*e+1000*f+100*c+10*b+h;
if(x+y==z)cout<<e<<f<<g<<b<<endl;
vis[h]=0;
}
/*
abcd
+ efgb
----------
efcbh

输出efgb
*/
vis[g]=0;
}
vis[f]=0;
}
vis[e]=0;
}
vis[d]=0;
}
vis[c]=0;
}
vis[b]=0;
}
vis[a]=0;
}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: