QLUzongyuxing @ 2022-01-21 09:27:00
#include<bits/stdc++.h>
using namespace std;
int gcd(int a,int b)
{
if(b == 0)
return a;
return gcd(b,a%b);
}
int main()
{
int a,b,c,i1,i2,i3,f,count=0;
int i11,i22,i33;
int s[100000],num[10000];
cin>>a>>b>>c;
int t=gcd(a,gcd(b,c));
a/=t;b/=t;c/=t;
for(int i=123;i<=987;i++){
if(i%a==0)
{
i1=i;i11=i1; i2=i1/a*b ; i22=i2; i3=i1/a*c;i33=i3;
for(int j=0;j<=9;j++){
num[j]=0;
}
f=0;
s[3]=i1%10; i1/=10; s[2]=i1%10; s[1]=i1/10;
s[6]=i2%10; i2/=10; s[5]=i2%10; s[4]=i2/10;
s[9]=i3%10; i3/=10; s[8]=i3%10; s[7]=i3/10;
for(int j=1;j<=9;j++){
num[s[j]]++;
}
for(int j=1;j<=9;j++){
if(num[s[j]]==1)
f++;
}
if(f==9)
cout<<i11<<" "<<i22<<" "<<i33<<" "<<endl;
count++;
}
}
if(count==0)
cout<<"No!!!";
return 0;
}
by coldy_rainy @ 2022-01-21 12:31:29
@QLUzongyuxing
输入2 3 4,你这份代码就卡了。。。
by coldy_rainy @ 2022-01-21 12:34:12
@penhaochen
输入3 4 5,神奇的出现了0?
by coldy_rainy @ 2022-01-21 13:00:38
@QLUzongyuxing
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b,c,i1,i2,i3,f,count=0;
int i11,i22,i33;
int s[100000],num[10000];
cin>>a>>b>>c;
for(int i=123;i<=987;i++){
if(i%a==0)
{
i1=i;i11=i1; i2=i1/a*b ; i22=i2; i3=i1/a*c;i33=i3;
for(int j=1;j<=9;j++){
num[j]=0;
}
f=0;
s[3]=i1%10; i1/=10; s[2]=i1%10; s[1]=i1/10;
s[6]=i2%10; i2/=10; s[5]=i2%10; s[4]=i2/10;
s[9]=i3%10; i3/=10; s[8]=i3%10; s[7]=i3/10;
for(int j=1;j<=9;j++){
num[s[j]]++;
}
for(int j=1;j<=9;j++){
if(num[s[j]]==1)
f++;
}
if(f==9)
{
cout<<i11<<" "<<i22<<" "<<i33<<" "<<endl;
count++;
}
}
}
if(count==0)
cout<<"No!!!";
return 0;
}
AC代码贴上
by coldy_rainy @ 2022-01-21 13:09:15
@QLUzongyuxing
错误点来了
【1】
下面这串代码错误:
for(int j=0;j<=9;j++){
num[j]=0;
}
应改为:
for(int j=1;j<=9;j++){
num[j]=0;
}
不然神奇的代码就会给你输出0
改后的结果:2AC->4AC(80)
【2】
为什么要找最大公约数?直接用a,b,c它不香吗?
即:去掉gcd及与它有关的代码
改后的结果:4AC->5AC(100)!
AC记录
全绿看起来真爽
验证码:T333祭
by QLUzongyuxing @ 2022-01-21 13:15:50
@penhaochen ac了,十分感谢!!!!