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