月离 @ 2019-09-06 17:43:29
#include<iostream>
using namespace std;
int b[10];
int sum;
int a,w,c,d,e,f,g,h,i,x,y,z;
int main(){
int A,B,C;
cin>>A>>B>>C;
for(int o=123;o<=987;o++){
x=o;
y=B/A*x;
z=C/A*x;
a=x/100;
w=(x/10)%10;
c=x%10;
d=y/100;
e=(y/10)%10;
f=y%10;
g=z/100;
h=(z/10)%10;
i=z%10;
b[a]=1;
b[w]=1;
b[c]=1;
b[d]=1;
b[e]=1;
b[f]=1;
b[g]=1;
b[h]=1;
b[i]=1;
if(b[1]*b[2]*b[3]*b[4]*b[5]*b[6]*b[7]*b[8]*b[9]==1){
sum++;
cout<<x<<" "<<y<<" "<<z<<endl;
}
x=0;
y=0;
z=0;
b[a]=0;
b[w]=0;
b[c]=0;
b[d]=0;
b[e]=0;
b[f]=0;
b[g]=0;
b[h]=0;
b[i]=0;
}
if(sum==0)cout<<"No!!!";
return 0;
}
完全涉及到我的盲区了;
真的很是mb;
数据
1 3 5
会输出正解后多一个No;
在o==219的时候,sum突然从1变成了0;
???????????(真是服了)
by MC方块人 @ 2019-09-06 18:45:26
@月离 你就把三连击的代码中的1:2:3换成a:b:c,再输入abc就可以了
by 月离 @ 2019-09-06 19:14:26
懂了,没用double
不够精确导致x,y,z发生了改变
by 帅到爆 @ 2019-09-20 18:48:56
其实SUM的问题很简单,只需要用一些条件