hdu 5059 简单字符串处理

来源:互联网 发布:40岁女人护肤品知乎 编辑:程序博客网 时间:2024/04/20 05:04

http://acm.hdu.edu.cn/showproblem.php?pid=5059

确定输入的数是否在(a,b)内

简单字符串处理

#include <cstdio>#include <cstdlib>#include <cmath>#include <cstring>#include <string>#include <queue>#include <set>#include <iostream>#include <algorithm>using namespace std;#define RD(x) scanf("%d",&x)#define RD2(x,y) scanf("%d%d",&x,&y)#define clr0(x) memset(x,0,sizeof(x))typedef long long LL;char s[1005];LL a,b;bool check(){    int n = strlen(s);    int flag = 0;    for(int i = 0;i < n;++i){        if(s[i] == '-'){            if(i != 0 || n == 1)                return false;        }        else if(s[i] == '0'){            if(flag == 0)                return false;        }        else if(s[i] >= '1' && s[i] <= '9'){            flag++;        }        else            return false;    }    return true;}LL get(){    int n = strlen(s);    if(n > 11 || n == 0)        return b + 1;    LL res = 0;    for(int i = 0;i < n;++i){        if(s[i] == '-')continue;        res = res*10LL + s[i] - '0';    }    if(s[0] == '-')        res = -res;    return res;}void work(){    scanf("%I64d%I64d",&a,&b);    getchar();    if(check() || strcmp(s,"0") == 0){        LL ss = get();        if(ss >= a && ss <= b)            puts("YES");        else            puts("NO");    }    else        puts("NO");    return ;}int main(){    while(gets(s)){        work();    }    return 0; }


0 0