社区讨论

蒟蒻求助

P5238整数校验器参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@mi86f8ox
此快照首次捕获于
2025/11/21 09:23
4 个月前
此快照最后确认于
2025/11/21 09:23
4 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
long long t,l,r;
string x;
int main()
{
    scanf("%lld%lld%lld",&l,&r,&t);
    while(t--)
    {
        unsigned long long sum=0;
        cin>>x;
        int flag=0,flag2=0;
        int len=x.size();
        if(len==1)
        {
            if(x[0]<='9'&&x[0]>='0')
                if(l<=x[0]-'0'&&r>=x[0]-'0')
                    printf("0\n");
                else
                    printf("2\n");
            else
                printf("1\n");

        }
        else
        {
            if(x[0]=='-')
                flag=1;
            for(int i=flag;i<len;i++)
            {
                if(i==flag)
                {
                    if(x[i]>'9'||x[i]<'1')
                    {
                        printf("1\n");
                        flag2=1;
                        break;
                    }
                }
                else
                {
                    if(x[i]>'9'||x[i]<'0')
                    {
                        printf("1\n");
                        flag2=1;
                        break;
                    }
                }
                sum=sum*10+x[i]-'0';
            }
            if(sum>=(unsigned long long)(1ll<<63))
            {
                printf("2\n");
                continue;
            }
            long long tmp;
            if(flag2==1) continue;
            if(flag==1) tmp=sum*-1;
            else tmp=sum;
            if(tmp>=l&&tmp<=r)
            {
                printf("0\n");
            }
            else
            {
                printf("2\n");
            }
        }
    }
    return 0;
}

回复

2 条回复,欢迎继续交流。

正在加载回复...