只有10score的卑微求助,神犇们救救小蒟蒻⑧www

P1618 三连击(升级版)

森森鸭 @ 2019-08-02 17:22:28

话不多说直接上代码

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int x,y,z;
    cin>>x>>y>>z;
    int d,e,f,g,h,i;
    int xb,yb,zb;
    int flag=0;
    for(int a=1;a<=9;a++)
    {
        for(int b=1;b<=9;b++)
        {
            if(b==a) continue;
            for(int c=1;c<=9;c++)
            {
                if(c==a||c==b) continue;
                xb=a*100+b*10+c;yb=y*xb;zb=z*xb;
                if(yb>987||zb>987) continue;
                f=yb%10;
                if(f==a||f==b||f==c) continue;
                yb/=10;e=yb%10;
                if(e==a||e==b||e==c||e==f) continue;
                yb/=10;d=yb%10;
                if(d==a||d==b||d==c||d==e||d==f) continue;
                i=zb%10;
                if(i==a||i==b||i==c||i==d||i==e||i==f) continue;
                zb/=10;h=zb%10;
                if(h==a||h==b||h==c||h==d||h==e||h==f||h==i) continue;
                zb/=10;g=zb%10;
                if(g==a||g==b||g==c||g==d||g==e||g==f||g==h||g==i) continue;
                cout<<a<<b<<c<<" ";
                cout<<d<<e<<f<<" ";
                cout<<g<<h<<i<<endl;
                flag=1;
            }
        }
    }
    if(flag==0) cout<<"NO!!!";
    return 0;
}

by 森森鸭 @ 2019-08-02 17:23:36

丑陋的代码


by lygmh @ 2019-08-02 17:36:51

@森森鸭 话不多说直接上代码

#include<iostream>
#include<cmath>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
int main(){
    int x1,x2,x3;
    bool fff=true;
    cin>>x1>>x2>>x3;
    long long int a,c;
    bool b[10],p;
    for(int x=0;x<=9;x++) {
        for(int y=0;y<=9;y++){
            for(int z=0;z<=9;z++){
                memset(b,false,sizeof(b));
                p=true;
                a=(1000000*x1+1000*x2+x3)*(x*100+y*10+z);
                c=a;
                for(int i=0;i<9;i++){
                    b[c%10]=true;
                    c=c/10;
                }
                for(int i=1;i<=9;i++){
                    if(b[i]==false)
                       p=false;
                }
                if (p&&(a/1000000)<(a/1000%1000)&&(a/1000%1000)<(a%1000)){
                    cout<<a/1000000<<" "<<a/1000%1000<<" "<<a%1000<<endl;
                    fff=false;
                }

            }
        }
    }
    if(fff)
       cout<<"No!!!"<<endl;
    return 0;
}

丑陋的代码


by lygmh @ 2019-08-02 17:38:08

就是枚举,枚举第一个三位数。算出第二个和第三个。再判断。


by VTloBong @ 2019-08-02 17:42:30

用DFS 吧,
码量小


by 森森鸭 @ 2019-08-02 18:17:33

@123456L 众所周知,因为dfs用的脑袋疼所以暴力枚举


by 森森鸭 @ 2019-08-02 18:17:49

@123456L 蒟蒻的卑微世界


by VTloBong @ 2019-08-02 19:16:01

@森森鸭 因为暴力枚举用的手疼所以dfs


by 森森鸭 @ 2019-08-02 19:22:02

@123456L 找到问题了,我一直傻傻以为A为1,智商堪忧现场


|