HDU 1283 最简单的计算机(简单模拟)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1283

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

代码如下:

#include <cstdio>
#include <cstring>
int main()
{
    char s[217];
    int M1, M2, R1, R2, R3;
    while(~scanf("%d%d",&M1,&M2))
    {
        R1 = R2 = R3 = 0;
        scanf("%s",s);
        int len = strlen(s);
        for(int i = 0; i < len; i++)
        {
            if(s[i] == 'A')
            {
                R1 = M1;
            }
            else if(s[i] == 'B')
            {
                R2 = M2;
            }
            else if(s[i] == 'C')
            {
                M1 = R3;
            }
            else if(s[i] == 'D')
            {
                M2 = R3;
            }
            else if(s[i] == 'E')
            {
                R3 = R1 + R2;
            }
            else if(s[i] == 'F')
            {
                R3 = R1 - R2;
            }
        }
        printf("%d,%d\n",M1,M2);
    }
    return 0;
}
时间: 2024-11-06 12:44:18

HDU 1283 最简单的计算机(简单模拟)的相关文章

hdu 1283 最简单的计算机

水题. .. import java.util.Scanner; public class Main { static int m1, m2; static int r1, r2, r3; public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()) { m1 = m2 = r1 = r2 = r3 = 0; m1 = sc.nextInt(); m2 = sc

杭电 HDU ACM 1283 最简单的计算机

最简单的计算机 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 5238    Accepted Submission(s): 2967 Problem Description 一个名叫是PigHeadThree的研究组织设计了一台实验用的计算机,命名为PpMm.PpMm只能执行简单的六种命令A,B,C,D,E,F:只有二个内存M1,M

1037: 最简单的计算机

1037: 最简单的计算机 时间限制: 1 Sec  内存限制: 128 MB提交: 187  解决: 134[提交][状态][讨论版] 题目描述 一个名叫是 PigHeadThree 的研究组织设计了一台实验用的计算机,命名为 PpMm.PpMm只能执行简单的六种命令 A,B,C,D,E,F:只有二个内存 M1,M2:三个寄存器 R1,R2,R3.六种命令的含义如下:命令 A:将内存 M1 的数据装到寄存器 R1 中:命令 B:将内存 M2 的数据装到寄存器 R2 中:命令 C:将寄存器 R3

HDU 1038[Biker&#39;s Trip Odometer]简单计算

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1038 题目大意:给轮子直径,转数,时间.要求输出走过的距离和时速(mile为单位) 关键思想:纯算 代码如下: #include <iostream> using namespace std; #define pi 3.1415927 int main(){ double d,r,t,l; int cnt=1; while(cin>>d>>r>>t&&a

[HDU 4082] Hou Yi&#39;s secret (简单计算几何)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4082 题目大意: 给你n个点,问能最多构成多少个相似三角形. 用余弦定理,计算三个角度,然后暴力数有多少个,更新答案. 代码: 1 #include <cstdio> 2 #include <cmath> 3 #include <algorithm> 4 #include <cstring> 5 #include <vector> 6 #includ

hdu 1201 18岁生日 (简单题)

18岁生日 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 18281    Accepted Submission(s): 5776 Problem Description Gardon的18岁生日就要到了,他当然很开心,可是他突然想到一个问题,是不是每个人从出生开始,到达18岁生日时所经过的天数都是一样的呢?似乎并不全都是这样,所以他

jQuery实现的简单文字提示效果模拟title(转)

来源 http://www.cnblogs.com/puzi0315/archive/2012/10/17/2727693.html 模拟title实现效果,可以修改文字的样式,换行等. 文件下载: 先看下效果截图: 代码分析: <!-- 引用jQuery --> <script src="jquery.js" type="text/javascript"></script> <style type="text/c

qtday02 qt做简单的加法器和模拟登陆功能

//在3t2目录下 //adder.h /* qt简单加法计算器 */ #ifndef ADDER_H #define ADDER_H #include<QDialog> #include<QLineEdit> #include<QtWidgets/QPushButton> #include<QtWidgets/QLabel> class Adder:public QDialog{ Q_OBJECT//让自定义的槽函数生效 private: QLineEdi

HDU 1715 大菲波数(JAVA, 简单题,大数)

题目 //BigInteger 和 BigDecimal 是在java.math包中已有的类,前者表示整数,后者表示浮点数 import java.io.*; import java.util.*; import java.math.*; public class Main { /** * @xqq */ public BigInteger an(BigInteger a, BigInteger b, int n) { if(n == 1) { return a; } for(int i = 2

?HDU 5795 A Simple Nim(简单Nim)

HDU 5795 A Simple Nim(简单Nim) Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)   Problem Description - 题目描述 Two players take turns picking candies from n heaps,the player who picks the last one will win the game.On e