#1求助啦啦

P1618 三连击(升级版)

爱梅花的放翁 @ 2017-07-20 22:00:49

小犇求助

#include<iostream>
using namespace std;
bool TTT[10];
void doit(int x)
{
TTT[x%10]=true;
TTT[x/10%10]=true;
TTT[x/100]=true ;
}
int main(){
    int a,b,c,A,B,C,sum=0;
    cin>>A>>B>>C; 
    for(a=100;a<=999;a++){
    a=A*a;
    b=B*a;
    c=C*a;    
    for(int i=0;i<10;i++)    
    TTT[i]=false;
    doit(a);
    doit(b);
    doit(c);
    bool flag=true;
    for(int i=1;i<=9;i++)
        if(TTT[i]==false)
          {  
              flag=false;
               sum++;
            } 
            if(flag)
            {
            cout<<a<<" "<<b<<" "<<c<<endl;
               }
}
            if(sum!=9)
                   cout<<"No!!!";
    return 0;    
}

by 墨明棋妙 @ 2017-07-26 19:29:05

看我的吧

#include<cstdio>
int main()
{
   int a,b,c;
   int f[10];
   int k1,k2,k3;
   scanf("%d%d%d",&k1,&k2,&k3);
   bool yes=true;
  for(int k=123;k*k3/k1<=987;k++)
  {
       a=k;
       b=a*k2/k1;
       c=a*k3/k1;
       for(int i=1;i<=9;i++)f[i]=0;
       while(a>1||b>1||c>1){
           f[a%10]=f[b%10]=f[c%10]=1;
           a/=10;
           b/=10;
           c/=10;
       }
       bool ok=true;
       for(int i=1;i<=9;i++)if(f[i]==0)ok=false;
       if(ok)printf("%d %d %d\n",k,k*k2/k1,k*k3/k1),yes=false;
  }
  if(yes)printf("No!!!");
return 0;
}

|