Sodifficult @ 2019-11-21 11:57:57
#include <iostream>
#include <algorithm>
using namespace std;
bool f(int a,int b)
{
int c;
char x[4],y[4];
x[0] = (a/100)%10+'0';
x[1] = (a/10)%10+'0';
x[2] = a%10+'0';
x[3] = '\0';
y[0] = (b/100)%10+'0';
y[1] = (b/10)%10+'0';
y[2] = b%10+'0';
y[3] = '\0';
for(int i=0;i<3;i++)
{
for(int j=i+1;j<3;j++)
{
if(x[i] == x[j] || y[i]==y[j])
{
return 0;
}
}
}
for(int i=0;i<3;i++)
{
if(x[i] == '0'|| y[i]=='0')
{
return 0;
}
}
for(int i=0;i<3;i++)
{
c = b%10;
b/=10;
for(int j=0;j<3;j++)
{
if(c+'0' == x[j])
{
return 0;
}
}
}
return 1;
}
int main()
{
int x,y,z,i,t = 0;
double x1,y1,z1;
cin>>x>>y>>z;
z1 = z*1.0/x;
y1 = y*1.0/x;
x1 = x*1.0/x;
if(z/x!=z1||y/z!=y1)
{
z = z;
x = x;
y = y;
}
else
{
z = z/x;
y = y/x;
x = 1;
}
for(i=100;i<=1000;i++)
{
if(f(x*i,y*i)&&f(x*i,z*i)&&f(y*i,z*i))
{
t = 1;
if(x*i>=1000||y*i>=1000||z*i>=1000)
{
cout<<"No!!!";
return 0;
}
cout<<x*i<<" "<<y*i<<" "<<z*i<<endl;
}
}
if(t==0)
{
cout<<"No!!!"<<endl;
}
return 0;
}
by Sodifficult @ 2019-11-21 18:11:48
#include <iostream>
#include <algorithm>
using namespace std;
bool f(int a,int b)
{
int c;
char x[4],y[4];
x[0] = (a/100)%10+'0';
x[1] = (a/10)%10+'0';
x[2] = a%10+'0';
x[3] = '\0';
y[0] = (b/100)%10+'0';
y[1] = (b/10)%10+'0';
y[2] = b%10+'0';
y[3] = '\0';
for(int i=0;i<3;i++)
{
for(int j=i+1;j<3;j++)
{
if(x[i] == x[j] || y[i]==y[j])
{
return 0;
}
}
}
for(int i=0;i<3;i++)
{
if(x[i] == '0'|| y[i]=='0')
{
return 0;
}
}
for(int i=0;i<3;i++)
{
c = b%10;
b/=10;
for(int j=0;j<3;j++)
{
if(c+'0' == x[j])
{
return 0;
}
}
}
return 1;
}
int main()
{
int x,y,z,i,t = 0,o=0;
double x1,y1,z1;
cin>>x>>y>>z;
z1 = z*1.0/x;
y1 = y*1.0/x;
x1 = x*1.0/x;
if(z/x!=z1||y/z!=y1)
{
z = z;
x = x;
y = y;
}
else
{
z = z/x;
y = y/x;
x = 1;
}
for(i=1;i<=1000;i++)
{
if(f(x*i,y*i)&&f(x*i,z*i)&&f(y*i,z*i))
{
t = 1;
if(x*i>=1000||y*i>=1000||z*i>=1000)
{
if(o!=1)
cout<<"No!!!";
return 0;
}
else
{
cout<<x*i<<" "<<y*i<<" "<<z*i<<endl;
o=1;
}
}
}
if(t==0)
{
cout<<"No!!!"<<endl;
}
return 0;
}
看了讨论区 已更正 这次通过了,我发现我那个for循环应该从1开始而不是100,还有就是我那个输出No!!!的条件出错了,不能只超过一千,因为还有一种情况就是开始满足小于1000,后来不满足了,就拿123 456 789来说,它会输出123 456 789 NO!!! 所以在这个地方应该特判下即可
by undefined_null @ 2019-11-22 19:59:10
可以下载数据然后if骗分
by Sodifficult @ 2019-11-25 15:28:08
@OIer_Dennis 数据怎么下?
by undefined_null @ 2019-11-25 16:52:08
@Sodifficult 尽量还是不要这么做吧……
再交一遍最后一个点错了的程序,然后进入旧版页面就可以下载最后一个数据了
by Sodifficult @ 2019-11-25 20:57:34
@OIer_Dennis 好的 但是目的不是骗分 只是想看看那种情况没有考虑到