字符串左移m位问题

来源:互联网 发布:数据挖掘实例分析 编辑:程序博客网 时间:2024/05/29 19:33
//*求最大公约数*/int max_common_div(int a,int b){if(a<b){a=a+b;b=a-b;a=a-b;}int t=a%b;while(t!=0){a=b;b=t;t=a%b;}return b;}void left_move(){const int m=4;char ch[]="abcdefgh";int n=strlen(ch);//求字符串长度n和左移位数m的公约数k,k即为完成字符串左移需要的循环次数int k=max_common_div(n,m);for(int i=0;i<k;i++){char t=ch[i];//临时变量int j;for(j=i;(j+m)%n!=i;j=(j+m)%n){ch[j]=ch[(j+m)%n];}ch[j]=t;}for(int i=0;i<n;i++){cout<<ch[i];}}