最简单的计算机
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 7946 Accepted Submission(s): 4471
命令A:将内存M1的数据装到寄存器R1中;
命令B:将内存M2的数据装到寄存器R2中;
命令C:将寄存器R3的数据装到内存M1中;
命令D:将寄存器R3的数据装到内存M2中;
命令E:将寄存器R1中的数据和寄存器R2中的数据相加,结果放到寄存器R3中;
命令F:将寄存器R1中的数据和寄存器R2中的数据相减,结果放到寄存器R3中。
你的任务是:设计一个程序模拟PpMm的运行。
其他说明:R1,R2,R3的初始值为0,所有中间结果都在-2^31和2^31之间。
100 288 ABECED 876356 321456 ABECAEDBECAF#include <iostream>
#include <string>
using namespace std;
int main()
{
//long long num1,num2; //本来是输入这个,后来看了一下,感觉没必要
long long M1,M2,R1 = 0,R2 = 0,R3 = 0;
string a;
unsigned long j;
while(cin>>M1>>M2)
{
R1 = 0,R2 = 0,R3 = 0; //之前没有将其初始化
cin>>a;
j=a.size();
for(int k=0;k<j;k++)
{
if(a[k]=='A')
R1=M1;
else if(a[k]=='B')
R2=M2;
else if(a[k]=='C')
M1=R3;
else if(a[k]=='D')
M2=R3;
else if(a[k]=='E')
R3=R1+R2;
else if(a[k]=='F')
R3=R1-R2;
}
cout << M1<<","<<M2<<endl;
}
return 0;
}