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 的数据装到内存 M1 中;
命令 D:将寄存器 R3 的数据装到内存 M2 中;
命令 E:将寄存器 R1 中的数据和寄存器 R2 中的数据相加,结果放到寄存器 R3 中;
命令 F:将寄存器 R1 中的数据和寄存器 R2 中的数据相减,结果放到寄存器 R3 中。
你的任务是:设计一个程序模拟 PpMm 的运行。

输入

有若干组,每组有 2 行,第一行是 2 个整数,分别表示 M1 和 M2 中的初始内容;第二行是一串长度不超过 200 的由大写字母 A 到 F 组成的命令串,命令串的含义如上所述。

输出

对应每一组的输入,输出只有一行,二个整数,分别表示 M1,M2 的内容;其中 M1 和 M2 之间用逗号隔开。

样例输入

100 288
ABECED
876356 321456
ABECAEDBECAF

样例输出

388,388
2717080,1519268

提示

来源

#include <iostream>
using namespace std;
int main(){
 int i,m1,m2,r1,r2,r3;
 string str;
 while(cin>>m1>>m2){
  r1=0;
  r2=0;
  r3=0;
  cin>>str;
  for(i=0;str[i]!=‘\0‘;i++){
   if(str[i]==‘A‘) r1=m1;
   else if(str[i]==‘B‘)r2=m2;
   else if(str[i]==‘C‘) m1=r3;
   else if(str[i]==‘D‘) m2=r3;
   else if(str[i]==‘E‘) r3=r1+r2;
   else if(str[i]==‘F‘) r3=r1-r2;
  }
  cout<<m1<<","<<m2<<endl;
 }
 return 0;
}

时间: 2025-01-11 16:20:39

1037: 最简单的计算机的相关文章

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

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:将

使用shell写简单的计算机

这是用shell写的计算机,支持加.减.乘.除.取模,并提供了用户输入内容检测,分享给大家. #!/bin/bash     #这是一个计算器!     read -p "请输入第一个数字:" -t 30 num1     read -p "请输入第二个数字:" -t 30 num2     read -p "请输入运算符号(支持 + - * / %):" -t 30 op     if [ -n "$num1" -a -n 

java初学者编译简单的计算机

package com.yj.test; import java.awt.BorderLayout; import java.awt.Font; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JP

(HDU)1283 -- 最简单的计算机

题目链接:http://vjudge.net/problem/HDU-1283 1 #include <cstdio> 2 #include <cstring> 3 #include <cmath> 4 #include <iostream> 5 #include <algorithm> 6 #include <string> 7 #include <cstdlib> 8 9 using namespace std; 10

python学习之路 实现简单的计算机功能。

计算器的主要思维是: 1.对输入的表达式去除其空格 2.判断用户输入的表达式中的括号是否合法 3.每次找到这个表达式只有一对括号的表达式(就是这找到的表达式内部没有括号) 4.对找到的只有一对括号中的表达式进行先乘除再加减的运算,把计算的结果替换到找到的表达式中 5.直到表达式中没有括号为止. 6.我们在调用上面的有一个先计算乘除在计算加减的函数.最后得到结果. 具体的代码如下: #!/usr/bin/env python # -*-coding:utf-8-*- import re # 查看表

自己动手写处理器之第一阶段(1)——计算机的简单模型、架构、指令集

将陆续上传本人写的新书<自己动手写处理器>(尚未出版),今天是第二篇,我尽量每周四篇 第1章 处理器与MIPS 时间开始了! --胡风 · 1949 让我们以一句诗意的话,开始本书的阅读. 时间从1971年11月15日开始,那一天,Intel发布了世界上第一款单芯片微处理器4004. 1.1 计算机的简单模型 计算机很复杂,可以听歌.看电影.上网.玩游戏,内部是怎么工作的,这个问题太可怕了,太复杂了. 计算机很简单,只有加.减.乘.除.逻辑.移位.转移.存储.加载等几类可以做的操作,太简单了.

简单理解计算机通信

简单理解计算机通信 写在前面: 在计算机刚出现的时候,只能在本机进行一些运算处理,想将一台计算机中的数据转移到另一台计算机中,需要通过外部存储介质来传输,例如磁带.软盘.而网络技术的出现,使得计算机间可以通过一些传输介质(网线.光纤等),实现快速的数据传输和信息交互.如今,网络已无处不在,那么,计算机之间究竟是如何通信的呢?下面会通过一些基础的网络知识来简单理解计算机之间的通信过程. 网络通信模型: 网络通信模型是一种概念模型和框架,旨在使各种计算机在世界范围内互连为网络.其中有OSI七层模型和