zp1881.cpp

来自「浙江大学acm在线判题器代码集。 本人在浙大acm判题器上的所有代码(心血) 」· C++ 代码 · 共 76 行

CPP
76
字号
#include <stdio.h>
#include <string.h>

int main(int argc, char* argv[])
{
  int n,s,i,ram[1000]={0},res[10]={0};

  char st[4];


  while (gets(st)>0)
  {
    memset(ram,0,sizeof(ram));
    memset(res,0,sizeof(res));
    n=0;
    ram[n++]=(st[0]-'0')*100+(st[1]-'0')*10+st[2]-'0';
    while (gets(st) && st[0]!='\0')
      ram[n++]=(st[0]-'0')*100+(st[1]-'0')*10+st[2]-'0';

  i=0;
  s=0;
  while (1)
  {
    s++;
    switch (ram[i]/100)
    {
      case 0:
        if (res[ram[i]%10])
          i=res[ram[i]%100/10]-1;
        break;
      case 1:
        break;
      case 2:
        res[ram[i]%100/10]=ram[i]%10;
        res[ram[i]%100/10]%=1000;
        break;
      case 3:
        res[ram[i]%100/10]+=ram[i]%10;
        res[ram[i]%100/10]%=1000;
        break;
      case 4:
        res[ram[i]%100/10]*=ram[i]%10;
        res[ram[i]%100/10]%=1000;
        break;
      case 5:
        res[ram[i]%100/10]=res[ram[i]%10];
        res[ram[i]%100/10]%=1000;
        break;
      case 6:
        res[ram[i]%100/10]+=res[ram[i]%10];
        res[ram[i]%100/10]%=1000;
        break;
      case 7:
        res[ram[i]%100/10]*=res[ram[i]%10];
        res[ram[i]%100/10]%=1000;
        break;
      case 8:
        res[ram[i]%100/10]=ram[res[ram[i]%10]];
        res[ram[i]%100/10]%=1000;
        break;
      case 9:
        ram[res[ram[i]%10]]=res[ram[i]%100/10];
        ram[res[ram[i]%10]]%=1000;
        break;
    }
    if (ram[i]==100)
      break;
    i++;
  }
  printf("%d\n",s);
  }
  return 0;

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?