只能输出一个23不知道为啥

P3955 [NOIP2017 普及组] 图书管理员

tcdxh @ 2022-09-19 22:37:32

#include<bits/stdc++.h>//图书管理员 
using namespace std;

int main()
{
    long long n,q,x,d = 1;
    long long a[1005],b[1005],c[1005];
    cin>>n>>q;

    for(int i = 0; i < n; i++)//输入 
    {
        cin>>a[i];
    }

    sort(a,a+n);//应题目要求从小到大 

    for(int i = 0; i < q; i++)//输入 
    {
        cin>>b[i]>>c[i];
    }

    for(int i = 0; i < q; i++)
    {
        d = 1;//记得还原 
        for(int j = 0; j < b[i]; j++)
        {
            d = d*10;//算出要模的数 
        }
        for(int k = 0; k < n; k++)
        {
            if(a[k]%d==c[i])//有就打印
            cout<<a[k]<<endl;
            break;
            if(k==n-1)
            cout<<"-1"<<endl; 
            break;
        } 
    } 

    return 0;
}

by Zhouw @ 2022-09-19 23:24:47

#include<bits/stdc++.h>
using namespace std;
struct reader{
    int number,xqm;
}a[10000000];
int ans,n,q,x[10000000];
int m[10]={1,10,100,1000,10000,100000,1000000,10000000,100000000}; 
int main()
{
    cin>>n>>q;
    for(int i=1;i<=n;i++) 
    cin>>x[i];
    for(int i=1;i<=q;i++) 
    cin>>a[i].number>>a[i].xqm;
    sort(x+1,x+1+n);
    for(int i=1;i<=q;i++)
    {
        ans=-1;
        for(int j=1;j<=n;j++)
        {                             if(x[j]%m[a[i].number]==a[i].xqm)
            {
                ans=x[j];break;
            }
        }
        cout<<ans<<endl;
    }
}

可以参考一下


by Zhouw @ 2022-09-19 23:25:30

排版乱了点,抱歉


by greenhb @ 2022-09-19 23:40:36

#include<bits/stdc++.h>//图书管理员
using namespace std;

int main()
{
    long long n,q,x,d = 1;
    long long a[1005],b[1005],c[1005];
    cin>>n>>q;

    for(int i = 0; i < n; i++)//输入
    {
        cin>>a[i];
    }

    sort(a,a+n);//应题目要求从小到大

    for(int i = 0; i < q; i++)//输入
    {
        cin>>b[i]>>c[i];
    }

    for(int i = 0; i < q; i++)
    {
        d = 1;//记得还原
        for(int j = 0; j < b[i]; j++)
        {
            d = d*10;//算出要模的数
        }
        for(int k = 0; k < n; k++)
        {
            if(a[k]%d==c[i]){cout<<a[k]<<endl;break;}
            if(k==n-1){cout<<"-1"<<endl;break;}
        }
    }

    return 0;
}

by greenhb @ 2022-09-19 23:41:55

@tcdxh 过了,记得if后面要加大括号,否则第一次就break了


|