练习场 1253 Turing equation

来源:互联网 发布:做微信推文用什么软件 编辑:程序博客网 时间:2024/05/16 06:17

题意:给你一个等式,里面的数据都是反向的,然后问你计算结果是否正确!

解法:简单字符串题。

 #include<bits/stdc++.h>using namespace std;int main(){    char str[55];    while(scanf("%s",str)!=EOF)    {        char a[10],b[10],c[10];        int len=strlen(str),k=0,j,la,lb,lc;        for(int i=0;i<len;i++)        {            if(str[i]!='+')                a[k++]=str[i];            else            {                la=i;                break;            }        }        a[la]='\0';        k=0;        for(int i=la+1;i<len;i++)        {            if(str[i]!='=')                b[k++]=str[i];            else            {                j=i;                break;            }        }        lb=j-la-1;        b[lb]='\0';        if(la>lb)        {            for(int i=lb;i<la;i++)                b[i]='0';            lb=la;            b[la]='\0';        }        if(la<lb)        {            for(int i=la;i<lb;i++)                a[i]='0';            la=lb;            a[lb]='\0';        }        k=0;        for(int i=j+1;i<len;i++)            c[k++]=str[i];        lc=k;        c[k]='\0';        if(a[0]=='0'&&la==1&&b[0]=='0'&&lb==1&&c[0]=='0'&&lc==1)            break;        int sum,car=0;        char s[25];        for(int i=0;i<la;i++)        {            sum=a[i]-'0'+b[i]-'0'+car;            car=sum/10;            sum%=10;            s[i]=sum+'0';        }        if(car)        {            s[la]=1+'0';            s[la+1]='\0';        }        else            s[la]='\0';        int s1=0,s2=0;        for(int i=la-1;i>=0;i--)            s1=s1*10+s[i]-'0';        for(int i=k-1;i>=0;i--)            s2=s2*10+c[i]-'0';        if(s1==s2)            printf("TRUE\n");        else            printf("FALSE\n");    }    return 0;}        


 

0 0