poj2572 Hard to Believe, but True!

2572判断两个数逆置相加得到结果再逆置,判断给的等式是否正确,这题几乎和1504题一模一样,就多加个输入的分割,这次0MS过了。

代码如下:

#include<stdio.h>
#include<string.h>

char a[8],b[8],c[10];

int reverse(char *s){
    char str[7];
    int i;
    char ch;
    strcpy(str,s);
    int len=strlen(str);
    for(i=0;i<len/2;i++){
        ch=str[i];
        str[i]=str[len-i-1];
        str[len-i-1]=ch;
    }    return (atoi(str));
}

void getStr(char *s){
    int len=strlen(s);
    int i=0,j;
    for (j=0;i<len;i++){
        if(s[i]=='+'){
            i++;
            break;
        }
        else{
            a[j]=s[i];
            j++;
        }
    }    for(j=0;i<len;i++){
        if(s[i]== '='){
            i++;
            break;
        }
        else{
            b[j]=s[i];
            j++;
        }
    }    for(j=0;i<len;i++){
        c[j]=s[i];
        j++;
    }    
}

void main(){
    char s[25];
    while(gets(s)){
        if(0==strcmp(s,"0+0=0")){
            printf("True\n");
            break;
        }
        memset(a,'\0',sizeof(a));
        memset(b,'\0',sizeof(b));
        memset(c,'\0',sizeof(c));
        getStr(s);
        if(reverse(c)==(reverse(a)+reverse(b)))
            printf("True\n");
        else
            printf("False\n");
    }
}
gerrard wechat
微信扫一扫,订阅我的博客动态^_^
您的支持将鼓励我继续创作!