【Description】
The fight goes on,whether to store numbers starting withtheir most significant digit or their least significant digit. Sometimes this isalso called the "Endian War". The battleground dates far back into the early days of computer science. Joe Stoy, in his (by the way excellent) book "DenotationalSemantics", tells following story:
"Thedecision which way round the digits runis, of course, mathematically trivial.Indeed, one early British computer had numbers running from right to left(because the spot on an oscilloscopetube runs from left to right, but in serial logic the least significant digitsare dealt with first). Turing used to mystify audiences at public lectureswhen, quite by accident, he would slip into this mode even for decimalarithmetic, and write things like 73+42=16. The next version of the machine was made moreconventional simply by crossing thex-deflection wires: this, however, worried the engineers, whosewaveforms were all backwards. Thatproblem was in turn solved by providing a little window so that the engineers(who tended to be behind the computer anyway) could view the oscilloscopescreen from the back.
You will play the role of the audience and judge on the truth value of Turing'sequations.
【Standard input】
The input containsseveral test cases. Each specifies on a single line a Turing equation. A Turingequation has the form "a+b=c", where a, b, c are numbers made up ofthe digits 0,...,9. Each number will consist of at most 7 digits. This includespossible leading or trailing zeros. The equation "0+0=0" will finishthe input and has to be processed, too. The equations will not contain any spaces.
【Standard output】
For each test casegenerate a line containing the word "TRUE" or the word "FALSE",if the equation is true or false, respectively, in Turing's interpretation,i.e. the numbers being read backwards.
【Sample Input】
73+42=16
5+8=13
0001000+000200=00030
0+0=0
【Sample Output】TRUE
FALSE
TRUE
先颠倒字符串。然后分别保存。
#include <iostream> #include<cstdio> #include<cstring> #include<string> #include<algorithm> using namespace std; int main() { string s; while(cin>>s) { reverse(s.begin(),s.end()); int a=0,b=0,c=0,i=0,j=1; for(i=0; i<s.length(); i++) { if(isdigit(s[i])&&j==1) { a=a*10+(s[i]-'0'); } if(!isdigit(s[i])) { j++; } if(isdigit(s[i])&&j==2) { b=b*10+(s[i]-'0'); } if(isdigit(s[i])&&j==3) { c=c*10+(s[i]-'0'); } } if(a==0&&b==0&&c==0) break; // cout<<a<<" "<<b<<" "<<c<<" "<<endl; if(a==b+c) { cout<<"TRUE"<<endl; } else cout<<"FALSE"<<endl; } return 0; }