题目内容:
设计分治算法实现将字符数组A[n]中所有元素循环左移k个位置,例如,对abcdefgh循环左移3位得到defghabc。
输入格式:
第一行为数组长度n
第二行为循环左移数k
第三行为数组中元素
输出格式:
循环左移k个位置后的结果
输入样例:
8
3
abcdefgh
输出样例:
defghabc
#include<stdio.h>
void reverse(int begin,int end,char a[]){
int k = end-begin+1;
for(int i=0;i<k/2;i++){
int temp=a[begin+i];
a[begin+i]=a[end-i];
a[end-i]=temp;
}
}
int main(){
int n,k;
char a[1000];
scanf("%d%d%s",&n,&k,a);
reverse(0,k-1,a);
reverse(k,n-1,a);
reverse(0,n-1,a);
printf("%s",a);
return 0;
}