这里写图片描述 这里写图片描述

刚开始没有HINT 所以想的比较麻烦 超长代码如下:

#include<stdio.h>
#include<string.h>
int main() {
    char s[100];
    int x,l,i;
    int re,t,p;
    while(scanf("%s",s)!=EOF) {
        l=strlen(s);
        for(i=x=re=0; i<l; i++) {
            if(i==0) {
                if(s[i]=='-') {
                    i++;
                    x=1;
                }
                for(re=0; '0'<=s[i]&&s[i]<='9'; i++) {
                    re=re*10+s[i]-'0';
                }
                if(x==1) {
                    x=0;
                    re=-re;
                }
            }
            if(s[i]=='+') {
                i++;
                if(s[i]=='-') {
                    i++;
                    x=1;
                }
                for(p=0; '0'<=s[i]&&s[i]<='9'; i++) {
                    p=p*10+s[i]-'0';
                }
                if(x==1) {
                    x=0;
                    p=-p;
                }
                re=re+p;
            } else if(s[i]=='-') {
                i++;
                if(s[i]=='-') {
                    i++;
                    x=1;
                }
                for(p=0; '0'<=s[i]&&s[i]<='9'; i++) {
                    p=p*10+s[i]-'0';
                }
                if(x==1) {
                    x=0;
                    p=-p;
                }
                re=re-p;
            } else if(s[i]=='*') {
                i++;
                if(s[i]=='-') {
                    i++;
                    x=1;
                }
                for(p=0; '0'<=s[i]&&s[i]<='9'; i++) {
                    p=p*10+s[i]-'0';
                }
                if(x==1) {
                    x=0;
                    p=-p;
                }
                re=re*p;
            } else if(s[i]=='/') {
                i++;
                if(s[i]=='-') {
                    i++;
                    x=1;
                }
                for(p=0; '0'<=s[i]&&s[i]<='9'; i++) {
                    p=p*10+s[i]-'0';
                }
                if(x==1) {
                    x=0;
                    p=-p;
                }
                re=re/p;
            }
            if(s[i]=='=') {
                i++;
                if(s[i]=='-') {
                    i++;
                    x=1;
                }
                for(p=0; '0'<=s[i]&&s[i]<='9'; i++) {
                    p=p*10+s[i]-'0';
                }
                if(x==1)
                    p=-p;
                if(re==p)
                    printf("YES\n");
                else
                    printf("NO\n");
            } else
                i--;
        }
    }
    return 0;
}

另附 @A_ice 的气死人不偿命代码:

#include<stdio.h>
int main()
{
    int a,b,d,sum;
    char s,w;
    while(~scanf("%d%c%d%c%d",&a,&s,&b,&w,&d))
    {
        if(s=='+')
            sum=a+b;
        if(s=='-')
            sum=a-b;
        if(s=='*')
            sum=a*b;
        if(s=='/')
            sum=a/b;
        if(sum==d)
            printf("YES\n");
        else
            printf("NO\n");
    }    
    return 0;
}

看完的感觉就是…… 我勒个去……这也行 -.-

题目地址:【杭电】[1773]Lovely simple problem two

© DiDaPiPa all right reserved,powered by GitbookRevision Time: 2020-03-12 21:32:06

results matching ""

    No results matching ""