poj2041

#include<iostream> #include<string> using namespace std;

int n; char regulation[10]; char mes[30]; int regulationlen; int meslen;

void processJ() {  char c = mes[meslen-1];  for(int i = meslen - 1;i >= 1;i--)  {   mes[i] = mes[i-1];  }  mes[0] = c; } void processC() {

 char c = mes[0];  for(int i = 0;i < meslen - 1;i++)  {   mes[i] = mes[i+1];  }  mes[meslen - 1] = c; } void processE() {  char c;  int midnum = (meslen+1)/2;  for(int i = 0,k = midnum; k < meslen;k++,i++)  {   c = mes[i];   mes[i] = mes[k];   mes[k] = c;  } } void processA() {  char c;  for(int i = 0,k = meslen - 1;i < meslen/2;i++,k--)  {

  c = mes[i];   mes[i] = mes[k];   mes[k] = c;  } }

void processP() {  for(int i = 0;i < meslen;i++)  {   if(mes[i] >= '0' && mes[i] <= '9')   {    mes[i] = (((mes[i] - '0') - 1 +10)%10 + '0');   }  } } void processM() {  for(int i = 0;i < meslen;i++)  {   if(mes[i] >= '0' && mes[i] <= '9')   {    mes[i] = (((mes[i] - '0') + 1 +10)%10 + '0');   }  }

} void solve() {

 regulationlen = strlen(regulation);  meslen = strlen(mes);  for(int i = regulationlen - 1;i >= 0;i--)  {   if(regulation[i] == 'J')    processJ();   else if(regulation[i] == 'C')    processC();   else if(regulation[i] == 'E')    processE();   else if(regulation[i] == 'A')    processA();   else if(regulation[i] == 'P')    processP();   else if(regulation[i] == 'M')    processM();  } } int main() {  cin>>n;  while(n--)  {   cin>>regulation>>mes;   solve();   cout<<mes<<endl;

 }  return 0; }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值