102 扩展欧几里得

// 102 扩展欧几里得.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
/*

http://oj.daimayuan.top/course/21/problem/487
输入T,一共T组数据,每组两个数a,b
,输出ax−by=gcd(a,b)的最小非负整数解(x,y)。

输入格式
第一行一个数字T。

接下来T行,每行两个数字a,b。

输出格式
一共T行,每行两个数,表示x,y。

输入样例
2
1 2
100 150
输出样例
1 0
2 1
数据规模
对于100%
的数据,保证1≤T≤104,1≤a,b≤109。
*/


#include <iostream>


using namespace std;

int T, a, b;


int exgcd(int a, int b, int& x, int& y) {
	if (!b) {
		x = 1, y = 0;
		return a;
	}
	int d = exgcd(b, a % b, x, y);
	int t = y;
	y = x - a / b * y;
	x = t;

	return d;
}



void solve() {
	cin >> a >> b;
	int x, y;
	int d = exgcd(a, b, x, y);
	if (x < 0 || y>0) {
		x += b / d; y -= a / d;
	}
	y = -y;
	cout << x << " " << y << endl;
}


int main()
{
	cin >> T;
	while (T--) {
		solve();
	}

	return 0;
}

 

posted on   itdef  阅读(2)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
历史上的今天:
2024-01-17 Leetcode 050. Pow(x, n)
2021-01-17 Leetcode 108 将有序数组转换为二叉搜索树
2021-01-17 挑战程序设计竞赛 习题 poj 3050 Hopscotch
2021-01-17 挑战程序设计竞赛 2章习题 AOJ 0121 Seven Puzzle bfs
2017-01-17 网站架设学习笔记

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示