求最大公约数(欧几里得算法)
来源:互联网 发布:腾讯自制网络剧2017 编辑:程序博客网 时间:2024/05/16 01:04
原理见百度百科:欧几里得算法
int gcd(int a, int b){if(a < b)swap(a, b);return b == 0 ? a : gcd(b, a % b);}
用于编程珠玑第二章的向量旋转问题,重新写这个程序:
#include <iostream>#include <string>using namespace std;void rotate(string &str, int i){int strLen = str.size();int numOfLoop = gcd(strLen, i);for(int loop = 0; loop < numOfLoop; ++loop){char tmp = str[loop];int current = loop;int next = loop + i;while(next % strLen != loop){str[current] = str[next];current = (current + i) % strLen;next = (next + i) % strLen;}str[current] = tmp;}}int main() {string str = "abcdefgh";rotate(str, 4);for(auto c : str)cout << c;cout << endl;return 0;}
0 0
- 求最大公约数(欧几里得算法)
- 求最大公约数(欧几里得算法)
- 欧几里得算法(求最大公约数)
- 欧几里得算法求最大公约数
- 欧几里得算法求最大公约数
- 欧几里得算法 求最大公约数
- 欧几里得算法求最大公约数(九度刷题)
- HDOJ 最小公倍数(欧几里得算法求最大公约数)
- 数据结构--求最大公约数(欧几里得算法)
- 一行代码求最大公约数(欧几里得算法)
- 用欧几里得算法求最大公约数
- java欧几里得算法求最大公约数
- 最大公约数(欧几里得算法)
- 最大公约数(欧几里得算法)
- 最大公约数(欧几里得算法)
- 【经典算法】:欧几里得算法求最大公约数
- 求最大公约数算法(欧几里得算法)的实现!!!
- HDOJ 又见GCD(欧几里得算法求最大公约数)
- eclipse统计项目代码总行数
- 启程
- NSNumberFormatter的使用(转换数字)
- C# 数组的使用
- hdu 3943 数位dp+二分
- 求最大公约数(欧几里得算法)
- 谈java多线程方式刷数据的一点建议
- 用宏换参
- 利用LruCache和DiskLruCache实现图片异步下载
- 利用Visio转换成pdf图形时的注意事项
- 测试实习生面试题
- 拥抱未来吧——第二日
- vim 兼容性的bug --softtabstops
- Bootstrap插件carousel源码的学习