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