rt
思路是深基书上面的,变量123到987,然后判断后面成比例的数是否能恰好占满9个数字
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef struct stu stu;
ll flag_global=0;
void f(ll (&v)[10],ll tmp){
while(tmp>0){
v[tmp%10]+=1;
tmp=tmp/10;
}
}
bool cmp(ll a,ll b){
ll a_x=a/100;ll b_x=b/100;
return a_x<b_x;
}
void solve(){
double a,b,c;cin>>a>>b>>c;
for(ll i=123;i<=987;++i){
ll tmp_a=i*1.0;
ll tmp_b=1.0*i/a*b;
ll tmp_c=1.0*i/a*c;
ll v[10];
memset(v,0,sizeof v);
f(v,tmp_a);f(v,tmp_b);f(v,tmp_c);//f函数将预设的数字每一位,装到桶v里面
ll flag=1;
//判断每一个位数是不是都恰好只有1个
for(ll i=1;i<=9;++i){
if(v[i]!=1){
flag=0;
break;
}
}
if(flag){
cout<<tmp_a<<" "<<tmp_b<<" "<<tmp_c;
cout<<"\n";
}else continue;
if(flag)flag_global=1;
}
//还有一个判断无解的条件,再加个flag_global
if(!flag_global)cout<<"No!!!";
}
int main(){
ll T=1;
while(T--)solve();
return 0;
}
但是不知道#6测试点为什么wa了,
求各位dalao解答QAQ 还有感觉这个暴力代码有点屎山,如果dalao们能给出精简的意见,改善码风格,小弟更是感激不尽!!