扩展gcd求解二元不定方程及其证明
2015-07-18 08:28
134 查看
#include <cstdio> #include <iostream> using namespace std; /*扩展gcd证明 因为当d = gcd(a,b)时; d = d1 = gcd(b,a%b); d1 = b1x1 + a%by1; d = ax+by = b1x1+a%by1,又因为a%b = a - a%b*b; 上式变形可以有 b1x1 + (a-b*a/b)*y1 = a*y1 + b*(x1-a/b*y1); 也就是是说ax+by = a*y1 + b*(x1-a/b*y1); 所以当x=y1,y = x1-a/b*y1时,可以满足有d=ax+by; */ int fun(int a,int b,int d,int &x,int &y){ if(b == 0){ x = 1; y = 0; return a; } else{ d = fun(b,a%b,d,x,y); int t; t = x; x = y; y = t-a/b*y; return d; } } int main(){ int a,b,d; cin >>a >> b >> d; int x,y; fun(a,b,d,x,y); printf("%d %d\n",x,y); return 0; }
相关文章推荐
- The Coco-Cola Store
- 【Spring一】IOC控制对象
- JavaScript内置对象
- 百度再次启动了原创保护计划 搜索结果页进行原创标识
- IO流之小型资源管理器概述
- 【从零单排之微软面试100题系列】11之二叉树中结点的最大距离
- 最全的正则表达式
- 从心理来看中日韩(拼爹东亚)
- 第6章 键盘_6.1-6.2 键盘基础与击键消息
- VB 中窗体发现冲突名称,将使用名称...怎么解决?
- UIButton的图片和文字相对位置调整
- 3.2.1 正则表达式的语法
- [Linux]三种方案在Windows系统下安装ubuntu双系统(转)
- 3.2.1 正则表达式的语法
- 第5章 绘图基础_5.6 矩形、区域和剪裁
- web应用中web.xml配置详解
- asp.net页面之间的跳转
- css3 过渡记
- nexus 7 恢复出厂设置后一系列问题
- 排序算法之希尔排序