最大公约数的快速求法
来源:互联网 发布:如何加入淘宝天猫商城 编辑:程序博客网 时间:2024/04/30 14:39
本题为编程之美中的第2.7题,上面的解法比辗转相除发的时间复杂度要小很多。看完之后用while循环代替了递归重写了一下。
废话少说,上源码:
#include <iostream>using namespace std;int GDC(unsigned long long x, unsigned long long y){ unsigned long long deep = 1; while(y != 0) { if (x < y) { x ^= y; y ^= x; x ^= y; continue; } if (x & 0x01 == 0) { if (y & 0x01 == 0) { x >>= 1; y >>= 1; deep <<= 1; } else { x >>= 1; } } else { if (y & 0x01 == 0) { y >>= 1; } else { unsigned long long temp = x - y; x = y; y = temp; } } } return deep * x;}int main(){ int result = GDC(24, 42); cout << result; return 0;}运行结果:
24 和 42 的最大公约数 为 6。
0 0
- 最大公约数的快速求法
- 最大公约数的的另一种求法
- 最大公约数的两种求法
- 最大公约数的两种求法
- 最大公约数求法
- 最大公约数求法
- 最大公约数求法
- 最大公约数(GCD)的另类求法
- 最大公约数和最小公倍数的递归求法
- 快速幂的二分求法
- 最大公约数,最小公倍数求法
- 最小公倍数与最大公约数求法
- 两个数的最大公约数和最小公倍数,数学求法
- 最大公约数与最小公倍数的求法--利用Java实现
- c语言最小公倍数与最大公约数的求法集锦
- 辗转相除法求最大公约数及最小公倍数的求法
- fibonacci 数列的快速幂求法
- 最大公约数和最小公倍数求法总结
- AdjustTokenPrivileges(进程权限修改)
- 快递企业竞推APP抢市做好线下支撑是关键
- arcgis api for flex 编辑功能
- coco2d-x如何创建工程
- Digit Generator 打表
- 最大公约数的快速求法
- Jackson异常情况处理
- 黑马程序员_GUI
- java实现的多人聊天程序
- 360Email:会员邮件营销取胜要点总结
- OJ2477抽象基类
- iOS(iOS7 iOS6)推送教程(一步一步实现,简单易懂)
- pfring 统计问题
- Circular Sequence 字符串处理