第一个点WA

P1618 三连击(升级版)

yyh0910 @ 2023-12-09 08:50:26

#include<iostream>
#include<algorithm>
#include<cstring>

using namespace std;

int A,B,C;
int k,ansa[1000],ansb[1000],ansc[1000];
int p[10];

int main()
{
    cin>>A>>B>>C;
    if(A==0||B==0||C==0)
    {
        cout<<"No!!!";
        return 0;
    }
    for(int i=123/A;i<=987/C;i++)
    {
        int a=i*A,b=i*B,c=i*C,flag=0;
        memset(p,0,sizeof(p));
        while(a>0)
        {
           if(p[a%10]==0)
               p[a%10]=1;
            else
            {
                flag=1;
                break;
            }
            a=a/10;
        }
        while(b>0)
        {
           if(p[b%10]==0)
               p[b%10]=1;
            else
            {
                flag=1;
                break;
            }
            b=b/10;
        }
        while(c>0)
        {
           if(p[c%10]==0)
               p[c%10]=1;
            else
            {
                flag=1;
                break;
            }
            c=c/10;
        }
        if(flag==0)
        {
            k++;
            ansa[k]=i*A;
            ansb[k]=i*B;
            ansc[k]=i*C;
        }
    }
    if(k==0) cout<<"No!!!";
    for(int i=1;i<=k;i++)
    {
        if(ansa[i]<1000&&ansb[i]<1000&&ansc[i]<10000)
        {
            cout<<ansa[i]<<" "<<ansb[i]<<" "<<ansc[i]<<endl;
        }
    }

    return 0;
}

枚举出每一个比例正确的数字 判断是否有相同的

为什么第一个点会WA呢……好想下载数据……但灰名没法下……


by yyh0910 @ 2023-12-12 20:42:13

找到原因了 试试1 2 3

0是不可以存在的,题目要求1-9


|