HDU1283 最简单的计算机【模拟】
生活随笔
收集整理的這篇文章主要介紹了
HDU1283 最简单的计算机【模拟】
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
最簡(jiǎn)單的計(jì)算機(jī)
Time Limit: 2000/1000 MS (Java/Others)????Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 7774????Accepted Submission(s): 4379
Problem Description 一個(gè)名叫是PigHeadThree的研究組織設(shè)計(jì)了一臺(tái)實(shí)驗(yàn)用的計(jì)算機(jī),命名為PpMm。PpMm只能執(zhí)行簡(jiǎn)單的六種命令A(yù),B,C,D,E,F;只有二個(gè)內(nèi)存M1,M2;三個(gè)寄存器R1,R2,R3。六種命令的含義如下:
??命令A(yù):將內(nèi)存M1的數(shù)據(jù)裝到寄存器R1中;
??命令B:將內(nèi)存M2的數(shù)據(jù)裝到寄存器R2中;
??命令C:將寄存器R3的數(shù)據(jù)裝到內(nèi)存M1中;
??命令D:將寄存器R3的數(shù)據(jù)裝到內(nèi)存M2中;
??命令E:將寄存器R1中的數(shù)據(jù)和寄存器R2中的數(shù)據(jù)相加,結(jié)果放到寄存器R3中;
??命令F:將寄存器R1中的數(shù)據(jù)和寄存器R2中的數(shù)據(jù)相減,結(jié)果放到寄存器R3中。
你的任務(wù)是:設(shè)計(jì)一個(gè)程序模擬PpMm的運(yùn)行。
Input 有若干組,每組有2行,第一行是2個(gè)整數(shù),分別表示M1和M2中的初始內(nèi)容;第二行是一串長(zhǎng)度不超過(guò)200的由大寫字母A到F組成的命令串,命令串的含義如上所述。
Output 對(duì)應(yīng)每一組的輸入,輸出只有一行,二個(gè)整數(shù),分別表示M1,M2的內(nèi)容;其中M1和M2之間用逗號(hào)隔開(kāi)。
其他說(shuō)明:R1,R2,R3的初始值為0,所有中間結(jié)果都在-2^31和2^31之間。
Sample Input 100 288 ABECED 876356 321456 ABECAEDBECAF
Sample Output 388,388 2717080,1519268
Author SmallBeer(CML)
Source 杭電ACM集訓(xùn)隊(duì)訓(xùn)練賽(VII)
問(wèn)題鏈接:HDU1283 最簡(jiǎn)單的計(jì)算機(jī)
問(wèn)題簡(jiǎn)述:參見(jiàn)上文。
問(wèn)題分析:一個(gè)簡(jiǎn)單的模擬題。
程序說(shuō)明:(略)題記:(略)
AC的C語(yǔ)言程序如下:
/* HDU1283 最簡(jiǎn)單的計(jì)算機(jī) */#include <stdio.h>#define N 200char command[N+1];int main(void) {int m1, m2, r1, r2, r3;while(scanf("%d%d", &m1, &m2) != EOF) {scanf("%s", command);r1 = r2 = r3 = 0;int i = 0;while(command[i]) {if(command[i] == 'A')r1 = m1;else if(command[i] == 'B')r2 = m2;else if(command[i] == 'C')m1 = r3;else if(command[i] == 'D')m2 = r3;else if(command[i] == 'E')r3 = r1 + r2;else if(command[i] == 'F')r3 = r1 - r2;i++;}printf("%d,%d\n", m1, m2);}return 0; }AC的C++語(yǔ)言程序如下:
/* HDU1283 最簡(jiǎn)單的計(jì)算機(jī) */#include <iostream>using namespace std;int main() {int m1, m2, r1, r2, r3;string command;while(cin >> m1 >> m2) {cin >> command;r1 = r2 = r3 = 0;int i = 0;while(command[i]) {if(command[i] == 'A')r1 = m1;else if(command[i] == 'B')r2 = m2;else if(command[i] == 'C')m1 = r3;else if(command[i] == 'D')m2 = r3;else if(command[i] == 'E')r3 = r1 + r2;else if(command[i] == 'F')r3 = r1 - r2;i++;}cout << m1 << "," << m2 << endl;}return 0; }
轉(zhuǎn)載于:https://www.cnblogs.com/tigerisland/p/7563600.html
總結(jié)
以上是生活随笔為你收集整理的HDU1283 最简单的计算机【模拟】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: zepp life怎么设置闹钟
- 下一篇: 微信转账限额多少 微信转账的额度是多少