战场原_黑仪 @ 2019-07-10 11:36:46
#include<iostream>
#include<cstdio>
using namespace std;
int a,b,c;
bool fl[10]={0};
int num[4]={0};
int all=0;
void make(int x)
{
if(x>9)
{
if(1.0*num[1]/a==1.0*num[2]/b&&1.0*num[1]/a==num[3]/c)
printf("%d %d %d\n",num[1],num[2],num[3]);
all++;
return;
}
for(int i=1;i<=9;i++)
{
if(fl[i]==true)
continue;
if(x%3==1)
{
num[(x/3)+1]+=i;
fl[i]=true;
make(x+1);
fl[i]=false;
num[(x/3)+1]-=i;
}
if(x%3==2)
{
num[(x/3)+1]+=i*10;
fl[i]=true;
make(x+1);
fl[i]=false;
num[(x/3)+1]-=i*10;
}
if(x%3==0)
{
num[x/3]+=i*100;
fl[i]=true;
make(x+1);
fl[i]=false;
num[(x/3)]-=i*100;
}
}
}
int main()
{
cin>>a>>b>>c;
make(1);
if(all==0)
cout<<"No!!!";
return 0;
}
by 战场原_黑仪 @ 2019-07-10 11:41:42
不好意思,发错版本了 全当没看见吧,谢谢
by 宓欣愉 @ 2019-07-10 11:53:21
呵呵,厉害,赶紧发,别再发错了