求最大公约数(欧几里得算法)

来源:互联网 发布:腾讯自制网络剧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
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 一年级小孩作文差怎么办 一年级小孩记忆力差怎么办 孩子的记忆力不好怎么办 孩子记忆力不好怎么办呢 小学三年级学生不听话怎么办 司法考试成绩单没打印怎么办 高一200分怎么办 初一孩子语文差怎么办 大学专业没选好怎么办 减肥口渴的厉害怎么办 开胸手术后胸闷气短怎么办 打游戏上网成瘾怎么办 老公打游戏成瘾怎么办 我老是沉迷游戏怎么办 18孩子沉迷游戏怎么办 志愿提交码丢失怎么办 幼儿园报名没进怎么办 考完教师资格证怎么办 两套房改房怎么办 cad打开无响应怎么办 高中生脸上痘痘怎么办 孩子玩心太大怎么办 开会听不懂讲什么怎么办 在国外玩手游老是进不去怎么办 广东普法考试不合格怎么办 尔雅考试错过了怎么办 大四考试错过了怎么办 电大考试错过了怎么办 吃了桂圆咳嗽怎么办 初中生游戏网瘾怎么办 孩子染上网瘾怎么办 郑州孩子厌学有网瘾怎么办 孩子网瘾严重怎么办 学生上课玩手机怎么办 老脱发怎么办才好 好几个月不来月经怎么办 电脑辐射脸上起痘痘怎么办 脸被手机辐射怎么办 宝宝沉迷于电视怎么办 青少年长了白发怎么办 刮胡子刮多了怎么办