题目:
象棋算式中不同棋子代表不同的数,
代码:
/*象棋算式中不同棋子代表不同的数,兵 炮 马 卒 + 兵 炮 车 卒 = 车 卒 马 兵 卒*/
#include<bits/stdc++.h>
using namespace std;
void fun()
{
int dig[10];
memset(dig, 0, sizeof(dig));
for(int a=1; a<=9; a++)
{
dig[a] = 1; //试探兵取值a
for(int b=0; b<=9; b++)
{
if(!dig[b]) //dig[b]为0
{
dig[b] = 1;//试探炮取值b
for(int c=0; c<=9; c++)
{
if(!dig[c])
{
dig[c] = 1;//试探马取值c
for(int d=0; d<=9; d++)
{
if(!dig[d])
{
dig[d] = 1;//试探车取值d
for(int e=0; e<=9; e++)
{
if(!dig[e])
{
dig[e] = 1;//试探卒取值e
int m = a*1000+b*100+c*10+e;
int n = a*1000+b*100+d*10+e;
int sum = d*10000+e*1000+c*100+a*10+e;
if(sum == m+n)
{
cout<<"车:"<<a<<"\t炮:"<<b<<"\t马:"<<c<<"\t车:"<<d<<"\t卒:"<<e<<endl;
}
dig[e] = 0;
}
}
}
dig[d] = 0;
}
}
dig[c] = 0;
}
}
dig[b] = 0;
}
dig[a] = 0;
}
}
int main()
{
fun();
return 0;
}