算法:循环左移问题

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);

}

猜你喜欢

转载自blog.csdn.net/juliet0727/article/details/88380832
今日推荐