C++ - 扩展欧几里德算法非递归实现
2014-11-11 21:19
183 查看
#include <iostream> using namespace std; int x, y; void get_x_y(int a, int b){ int q, r[3], s[3], t[3]; if(a < b) a ^= b ^= a ^= b; r[0] = a; r[1] = b; s[0] = 1; s[1] = 0; t[0] = 0; t[1] = 1; while(r[1] > 0){ q = r[0] / r[1]; r[2] = r[0] - q * r[1]; s[2] = s[0] - q * s[1]; t[2] = t[0] - q * t[1]; r[0] = r[1]; s[0] = s[1]; t[0] = t[1]; r[1] = r[2]; s[1] = s[2]; t[1] = t[2]; } x = s[0]; y = t[0]; return; } int main(){ int a, b; cin >> a >> b; get_x_y(a, b); cout << x << " " << y << endl; return 0; }
相关文章推荐
- c++实现的递归搜索迷宫类
- 递归实现数字的组合(C++)
- 汉诺塔问题C++的递归实现 [
- C++ 二叉树的构建,先序/中序/后序的递归/非递归实现
- C++ 二叉树遍历(三种遍历的递归实现)
- C++递归实现欧几里德(Euclid)算法
- C++常考的上机题型:判断一个字符串是否为回文串(递归实现)
- 汉诺塔C++版的递归实现。。。。
- C++实现二叉树 前序遍历, 后序遍历, 中序遍历, 层序遍历(不用递归)
- 二叉树遍历 非递归 C++实现
- 折半查找的c++模板递归和迭代实现
- 简单谈谈 C/C++ 递归的思想,实现,以及和循环的关系。
- 二叉树遍历(前中后序递归、非递归遍历,层次遍历,C++实现)
- 二叉树的遍历(C++非递归实现)
- C++ 实现求二叉树的深度及便利(递归与非递归算法)
- 递归实现数字的组合(C++)
- 二叉树的递归与非递归算法(前中后序遍历,C++实现)
- C/C++中关于递归的实现细节的总结
- C/C++面试程序题(一)——字符串反转、链表反转的递归、非递归实现
- 全排列算法递归实现 C++