本文主要是介绍河南省第七届ACM【Turing equation】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
【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;}
这篇关于河南省第七届ACM【Turing equation】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!