程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 杭電OJ——1283 最簡單的計算機

杭電OJ——1283 最簡單的計算機

編輯:C++入門知識

最簡單的計算機   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;   }    

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved