杂技算法
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; }
相关文章推荐
- thinkphp验证码更改
- javascript 中关于对象转换数字值的一些特点
- Python - for()循环 详解 及 代码
- 毕业5年决定人的一生(大家有空一定要看看)
- Python - for()循环 详解 及 代码
- CF 370
- poj1679(判断最小生成树是否唯一)
- Uniscribe文字自动换行
- 数据库分页技术
- paint和paintComponent方法的关系
- 火星文 wa
- 使用C编译器编写shellcode
- Android读写文件
- Perl内置特殊变量
- 浮躁的我们
- 永远不要在Linux执行的10个最危险的命令
- poj1733(区间上的种类并查集)
- C# 获取xlsx表名
- 使用drools+freemarker解决非技术人员设计系统业务规则
- QT项目中显示中文