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");
	}
}

wechat
微信扫一扫,订阅我的博客动态^_^