你这要不要,在当m,n互质时这些数都会移动一次,否则x=n.m的最大公约数,只有n/x个数会移动;想问一下要不要把这n都移动一次,如果要的话,1,求m,n的最大公约数x;2,移动数nj=n/x;for(i=0;i{t=str[j];cnt=nj;for(j=(i+s)%n;cnt>0;cnt--,j=(j+m)%n){str[j]=str[(j+m)%n];} str[(j+m)%n]=t;}