HDU 2669 扩展欧几里得
2015-05-31 14:56
260 查看
#include <iostream> #include <cstdio> using namespace std; typedef long long LL; LL gcd(LL a, LL b) { return b ? gcd(b,a%b) : a; } void exgcd(LL a ,LL b,LL &x ,LL &y) { if(b==0) { x=1; y=0; return ; } exgcd(b,a%b,x,y); LL tmp=x; x=y; y=tmp-(a/b)*y; } int main() { LL a,b; while(~scanf("%lld%lld",&a,&b)) { LL w=gcd(a,b); if(w!=1) printf("sorry\n"); else { LL x,y; exgcd(a,b,x,y); x=(x%b+b)%b; y=(1-a*x)/b; printf("%lld %lld\n",x,y); } } return 0; }
相关文章推荐
- 放过
- linux 服务器配置
- 设计模式之一:简单工厂模式
- C#--web水印+++++验证码
- Wget用法、参数解释的比较好的一个文章
- 不错的几个播客
- plutil工具
- 用c语言来实现井字棋
- HTTP协议基础
- 2015第22周日
- Eclipse Luna安装Activiti Designer报错解决方案
- 图片上传之fileupload
- 一个文件含有40亿个非负整数,使用10MB内存,找到一个不在该文件中的整数
- Android 开发环境更新方法
- C# web实现文件下载
- Climbing Worm
- Hadoop学习笔记(五)---HDFS shell操作
- 十二周——多态性——阅读项目(2)
- BZOJ 1050: [HAOI2006]旅行comf( 并查集 )
- java线程中run和start方法的区别