7个测评点,对了5个(求教)

P1618 三连击(升级版)

YJL999 @ 2024-08-22 20:58:14

不知道,咋错了,求教q_u_q(看着书上做的,结果错了)

#include <bits/stdc++.h>
using namespace std;
int b[20];
long long A,B,C,x,y,z,cnt; 
void go(int x){
    b[x%10]=1;
    b[x/10%10]=1;
    b[x/100]=1;
}
bool check(int x,int y,int z){
    memset(b,0,sizeof(b));
    if(y>999||z>999) return 0;
    go(x),go(y),go(z);
    for(int i=1;i<=9;i++){
        if(!b[i]) return 0;
    }
    return 1;
}
int main(){
    cin>>A>>B>>C;
    for(int i=123;i<=987;i++){
        if(x*B%A||x*C%A) continue;
        y=x*B/A,z=x*C/A;
        if(check(x,y,z)){
            cout<<x<<' '<<y<<' '<<z<<' '<<endl;
            cnt++;
        } 
    } 
    if(!cnt) cout<<"No!!!";
    return 0;
}

在线等急


by _d_h_f @ 2024-08-22 21:05:42

我想知道您主函数的 for 循环中的 x 不应该是 i 吗?


by _d_h_f @ 2024-08-22 21:08:45

还有注意题目中 A 的取值是能取到 0 的,必须特判,不然 RE


by YJL999 @ 2024-08-22 21:17:28

谢谢,已关


|