小周猪猪 @ 2017-10-05 14:40:09
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b,c,x[10],s,k=0;
cin>>a>>b>>c;
for (int i=100;i<=400;i++)
{
memset(x,0,sizeof(x));s=0;
if (i*a>999) continue;
if (i*b>999) continue;
if (i*c>999) continue;
x[i*a%1000/100]=1;
x[i*a%100/10]=1;
x[i*a%10]=1;
x[i*b%1000/100]=1;
x[i*b%100/10]=1;
x[i*b%10]=1;
x[i*c%1000/100]=1;
x[i*c%100/10]=1;
x[i*c%10]=1;
for (int j=1;j<=9;j++)
if (x[j]==1) s+=1;
if (s==9)
{
cout<<i*a<<' '<<i*b<<' '<<i*c<<endl;
k+=1;
}
}
if (k==0) printf("No!!!");
return 0;
}
by 小周猪猪 @ 2017-10-05 14:41:31
希望看看我的程序拿错了
谢谢各位大佬
by eydz_mfj @ 2017-10-10 19:45:28
比如给了三个比较大的数,其中有大于10的
a、b、c*100就必定大于999了
我把i从1开始循环,判断条件改成a*i<100&&a*i>999就对了
by xhx0809 @ 2017-11-30 20:09:33
代码:
//#include<iostream>
//using namespace std;
//bool bcf(int s)
//{
// int tong[10]={0};
// while(s)
// {
// int t=s%10;
// tong[t]++;
// s/=10;
// }
// for(int i=1;i<=9;i++)
// if(tong[i]!=1)
// return 0;
// return 1;
//}
//int main()
//{
// int a,b,c;
// bool ansflag=false;
// cin>>a>>b>>c;
// for(int i=123;i<=999;i++)
// if(i%a==0)
// {
// int t1=i,t2=i/a*b,t3=i/a*c;
// if(t1<=999&&t2<=999&&t3<=999)
// {
// int s=t1+t2*1000+t3*1000000;
// if(bcf(s))
// {
// cout<<t1<<" "<<t2<<" "<<t3<<endl;
// ansflag=true;
// }
// }
// }
// if(!ansflag)
// cout<<"No!!!";
// return 0;
//}