dfs,dalao们求调

P1618 三连击(升级版)

ngmhhy @ 2024-04-02 10:12:39


using namespace std;
bool num[9],x;
int n[9];
float A,B,C;
void f(int l){
    if(l>9){
        float a=n[1]*100+n[2]*10+n[3];
        float b=n[4]*100+n[5]*10+n[6];
        float c=n[7]*100+n[8]*10+n[9];
        float m=B/A,n=C/A;
        if(b/a==m&&c/a==n){
                /*printf("%d%d%d ",n[1],n[2],n[3]);
                printf("%d%d%d ",n[4],n[5],n[6]);
                printf("%d%d%d\n",n[7],n[8],n[9]);*/
                printf("%.0f %.0f %.0f\n",a,b,c);
        }
        x=true;
    }
    else{
        for(int i=1;i<=9;i++){
            if(!num[i]){
                num[i]=true;
                n[l]=i;
                f(l+1);
                num[i]=false;
            }
        }
    }
}
int main(){
    scanf("%f %f %f",&A,&B,&C);
    f(1);
    if(!x){
        printf("No!!!");
    }
}

by schirst @ 2024-04-02 11:20:41

@ngmhhy,数组开小了,以及还需要特判a==0的情况


by ngmhhy @ 2024-04-07 17:21:15

@jie_xusheng 谢谢dalao,A过了


|