P9855
Wangjunhao2011 · · 题解
这道题拿一个字符数组来模拟就行了。
我们可以将数组整体往后移,但是要将第一个字符记录下来。
代码
if(b==1){
for(int j=1;j<=n;j++){
char p=a[1];
for(int i=2;i<=5;i++){
a[i-1]=a[i];
}
a[5]=p;
}
}
我们可以将数组整体往前移,但是要将最后一个字符记录下来。
if(b==2){
for(int j=1;j<=n;j++){
char p=a[5];
for(int i=4;i>=1;i--){
a[i+1]=a[i];
}
a[1]=p;
}
}
我们用一个函数 swap 来交换。
if(b==3){
for(int j=1;j<=n;j++){
swap(a[1],a[2]);
}
}
直接输出。
代码
if(b==4){
for(int i=1;i<=5;i++)cout<<a[i]<<" ";
return 0;
}
AC代码
#include<bits/stdc++.h>
using namespace std;
int main(){
char a[12];
a[1]='A';
a[2]='B';
a[3]='C';
a[4]='D';
a[5]='E';
int b,n;
while(1){
cin>>b>>n;
if(b==1){
for(int j=1;j<=n;j++){
char p=a[1];
for(int i=2;i<=5;i++){
a[i-1]=a[i];
}
a[5]=p;
}
}
if(b==2){
for(int j=1;j<=n;j++){
char p=a[5];
for(int i=4;i>=1;i--){
a[i+1]=a[i];
}
a[1]=p;
}
}
if(b==3){
for(int j=1;j<=n;j++){
swap(a[1],a[2]);
}
}
if(b==4){
for(int i=1;i<=5;i++)cout<<a[i]<<" ";
return 0;
}
}
return 0;
}