最簡單的計算機 Problem Description 一個名叫是PigHeadThree的研究組織設計了一台實驗用的計算機,命名為PpMm。PpMm只能執行簡單的六種命令A,B,C,D,E,F;只有二個內存M1,M2;三個寄存器R1,R2,R3。六種命令的含義如下: 命令A:將內存M1的數據裝到寄存器R1中; 命令B:將內存M2的數據裝到寄存器R2中; 命令C:將寄存器R3的數據裝到內存M1中; 命令D:將寄存器R3的數據裝到內存M2中; 命令E:將寄存器R1中的數據和寄存器R2中的數據相加,結果放到寄存器R3中; 命令F:將寄存器R1中的數據和寄存器R2中的數據相減,結果放到寄存器R3中。 你的任務是:設計一個程序模擬PpMm的運行。 Input 有若干組,每組有2行,第一行是2個整數,分別表示M1和M2中的初始內容;第二行是一串長度不超過200的由大寫字母A到F組成的命令串,命令串的含義如上所述。 Output 對應每一組的輸入,輸出只有一行,二個整數,分別表示M1,M2的內容;其中M1和M2之間用逗號隔開。 其他說明:R1,R2,R3的初始值為0,所有中間結果都在-2^31和2^31之間。 Sample Input 100 288 ABECED 876356 321456 ABECAEDBECAF Sample Output 388,388 2717080,1519268 Author SmallBeer(CML) Source 杭電ACM集訓隊訓練賽(VII) Recommend lcy 很簡單的題目,直接發代碼: [cpp] #include<iostream> #include<string> using namespace std; int main() { int m1,m2,r1,r2,r3; string str; char ch; while(scanf("%d%d",&m1,&m2)!=EOF) { cin>>str; r1=r2=r3=0; //cout<<str.length ()<<endl; for(int i=0;i<str.length();i++) { ch=str[i]; switch(ch) { case 'A':r1=m1;break; case 'B':r2=m2;break; case 'C':m1=r3;break; case 'D':m2=r3;break; case 'E':r3=r1+r2;break; case 'F':r3=r1-r2;break; } } printf("%d,%d\n",m1,m2); } return 0; }