请看下面的算式:
(ABCD - EFGH) * XY = 900
每个字母代表一个0~9的数字,不同字母代表不同数字,首位不能为0。
比如,(5012 - 4987) * 36 就是一个解。
请找到另一个解,并提交该解中 ABCD 所代表的整数。
#include <bits/stdc++.h>
using namespace std;
int vis[10],a[10];
void dfs(int st){
if(st>=10){
int s1=a[0]*1000+a[1]*100+a[2]*10+a[3];
int s2=a[4]*1000+a[5]*100+a[6]*10+a[7];
int s3=a[8]*10+a[9];
if((s1-s2)*s3==900)cout<<s1<<" "<<s2<<" "<<s3<<endl;
return ;
}
for(int i=0;i<10;i++){
if(!vis[i]){
if(st==0&&i==0)continue;
if(st==4&&i==0)continue;
if(st==8&&i==0)continue;
a[st]=i;
vis[i]=1;
dfs(st+1);
vis[i]=0;
}
}
}
int main()
{
dfs(0);
cout << "Hello world!" << endl;
return 0;
}