1 int vec_rotate(char *vec,int rotdist, int length) {
2 int i,j,k,times;
3 char t;
4 times = gcd(rotdist,length);
5 printf("%d\n",times);
6 for(i=0;i<times;i++) {
7 t = vec[i];
8 j = i;
9 while(1) {
10 k = j+ rotdist;
11 if(k>=length)
12 k-=length;
13 if(k==i)
14 break;
15 vec[j] = vec[k];
16 j = k;
17 }
18 vec[j]=t;
19 }
20 return 0;
21 }
浙公网安备 33010602011771号