NOIP竞赛题,恭请各位纠正。

NOIP1998普及组题目如图

img


本蒟蒻的解

img


运行结果如图

img


各位神犇请问哪里出来问题?

多个&&连接不能这样写

img


而且按照你这个算法 ,只要找到一个就会停止了

#include <bits/stdc++.h>
using namespace std;

int main() {
    int a,b,c,t;
    bool flag = true;
    for(int i=1;i<=9 && flag;i++){
        for(int j=1;j<=9 && flag;j++){
            for(int k=1;k<=9 && flag;k++){
                if(i!=j && i!=k && j!=k){
                    a=i*100+j*10+k;
                    b=a*2;
                    c=a*3;
                    if(c>999){
                        //a3个位从1-9循环查找,且a是最小的数,如果此时a的三倍已经不是三位数了,那么比a大的数都不用考虑了
                        flag = false;
                        break;
                    }
                    //判断a b c的三个位是否分别用了1-9,且没有重复
                    int use[11] = {0};
                        use[i]=1;
                        use[j]=1;
                        use[k]=1;
                        use[b/100]=1;
                        use[b%100/10]=1;
                        use[b%10]=1;
                        use[c/100]=1;
                        use[c%100/10]=1;
                        use[c%10]=1;
                        t=1;
                        for(;i<=9;t++){
                            if(use[t]==0){
                                break;
                            }
                        }
                        if(t==10){
                            cout<<a<<" "<<b<<" "<<c<<endl;
                        }
                }
            }
        }
    }
    return 0;
}