题目摘要
给定一个数组,要求将数组向右循环移位K次,求所得的新的数组。
题目分析
给如下实例,如abcd1234循环移位4次,abcd1234→4abcd123→34abcd12→234abcd1→1234abcd
一种很简单的求解方法就是每次移一位,循环移动K次,代码如下:
#include"stdio.h"
#include"stdlib.h"
#include"string.h"
#define N 100
int main()
{
int i, k, temp;
char s[N];
scanf_s("%s", s, N);
scanf_s("%d", &k);
i = strlen(s);
//处理k>i情况
k = k%i;
while (k)
{
i = strlen(s);
temp = s[i - 1];
for (i = strlen(s); i > 0; i--)
{
s[i - 1] = s[i - 2];
}
s[0] = temp;
k--;
}
printf("%s\n