您的位置:首页 > 其它

杂技算法

2013-12-08 13:33 330 查看
#include <stdio.h>
#include <string.h>

int gcd (int a, int b)
{
if (a == 0)
return b;
if (b == 0)
return a;
return gcd(b, a % b);
}

void reverse(char x[], int r, int n)
{
int  i, j, k;
char tmp;

for (i = 0; i < gcd (r, n); ++i)
{
tmp = x[i];
j   = i;

while (1)
{
k = j + r;
if (k >= n)
k -= n;
if (k == i)
break;
x[j] = x[k];
j = k;
}
x[j] = tmp;
}
}

int main()
{
char x[] = "abcdefgh";
int  len = strlen(x);

reverse(x, 6, len);
puts(x);

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: