数论-线性方程——Program H

线性方程

Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u

Description

The Sky is Sprite. 
The Birds is Fly in the Sky. 
The Wind is Wonderful. 
Blew Throw the Trees 
Trees are Shaking, Leaves are Falling. 
Lovers Walk passing, and so are You. 
................................Write in English class by yifenfei

Girls are clever and bright. In HDU every girl like math. Every girl like to solve math problem! 
Now tell you two nonnegative integer a and b. Find the nonnegative integer X and integer Y to satisfy X*a + Y*b = 1. If no such answer print "sorry" instead.

Input

The input contains multiple test cases. 
Each case two nonnegative integer a,b (0<a, b<=2^31)

Output

output nonnegative integer X and integer Y, if there are more answers than the X smaller one will be choosed. If no answer put "sorry" instead.

Sample Input

  77   51

  10   44

  34   79

Sample Output

  2   -3

  sorry

  7   -3

题目大意:已知线性方程ax+by=1;输入a,b的值,要求输出x,y的值,若没有,输出“sorry”。

分析:求线性方程的解用扩展欧几里得算法,再判断gcd(a,b)=d是否等于1.

代码如下:

#include <iostream>
#include <cstdio>

using namespace std;
void gcd(long long a,long long b,long long &d,long long &x,long long &y)
{
	if(!b)
	{
		d=a;
		x=1;
		y=0;
	}
	else
	{
		gcd(b,a%b,d,y,x);
		y-=x*(a/b);
	}
}
int main()
{
	long long  a,b;
	while(scanf("%lld%lld",&a,&b)==2)
	{
		long long d,x,y;
		gcd(a,b,d,x,y);
		if(d==1)
		{
			while(x<0)
			{
				x=x+b;
				y=y-a;
			}
			printf("%lld %lld\n",x,y);
		}
		else
			printf("sorry\n");
	}
	return 0;
}
时间: 2024-10-01 11:02:33

数论-线性方程——Program H的相关文章

美素数——Program H

美素数 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Description 小明对数的研究比较热爱,一谈到数,脑子里就涌现出好多数的问题,今天,小明想考考你对素数的认识.  问题是这样的:一个十进制数,如果是素数,而且它的各位数字和也是素数,则称之为“美素数”,如29,本身是素数,而且2+9 = 11也是素数,所以它是美素数.  给定一个区间,你能计算出这个区间内有多少个美素数吗? In

集训第六周 数学概念与方法 数论 线性方程 I题

Description The Sky is Sprite. The Birds is Fly in the Sky. The Wind is Wonderful. Blew Throw the Trees Trees are Shaking, Leaves are Falling. Lovers Walk passing, and so are You. ................................Write in English class by yifenfei Gir

算法竞赛入门经典_4.3_递归

看代码 #include <stdio.h> int f(int n){ return n == 0?1:f(n-1)*n; } int main() { printf("%d\n", f(5)); return 0; } 上面f函数使用了递归,递归由两部分组成,一是递归头,二是递归体. 我们使用gcc调试工具 H:\编程书籍学习\算法竞赛入门经典2代码\算法入门经典第四章>b f 'b' 不是内部或外部命令,也不是可运行的程序 或批处理文件. H:\编程书籍学习\算

在Oracle Linux上安装dtrace

http://www.ohsdba.cn/index.php?g=Home&m=Article&a=show&id=171 时间: 2016-10-09 00:40:04  | 作者: ohsdba  | English 如非注明,本站文章皆为原创.欢迎转载,转载时请注明出处和作者信息. DTrace(dynamic tracing)是Sun Solaris系统上主要的性能诊断工具,可以对kernel和用户应用程序进行动态跟踪,并且对系统运行不构成任何危险的技术,后被Oracle公

3.13课&#183;&#183;&#183;&#183;&#183;&#183;&#183;&#183;&#183;函数

函数:能够独立完成某项功能的模块. 函数四要素:输入.输出.函数体.函数名 函数定义: (static/public) 返回类型 函数名(参数类型 参数名,参数类型 参数名){    函数体} 函数的调用:返回变量类型 变量名 = 函数(实参值) 传值:四种方式1.没有返回值,没有输入值2.没有返回值,有输入值3.有返回值,没有输入值4.有返回值,有输入值 函数是写在class类里面,main函数上面,也可新建一个类,写入函数,只要namespace相同,就可调用class里面的函数 /// <

ebtables

EBTABLES NAME ebtables (v2.0.10-1) - Ethernet bridge frame table administration SYNOPSIS ebtables [-t table ] -[ACDI] chain rule specification [match extensions] [watcher extensions] target ebtables [-t table ] -P chain ACCEPT | DROP | RETURN ebtable

NRF51822之DFU使用手机升级

演示的工程是 [application]    nRF51_SDK_10.0.0_dc26b5e\examples\ble_peripheral\ble_app_hrs\pca10028\s110_with_dfu [bootload]      nRF51_SDK_10.0.0_dc26b5e\examples\dfu\bootloader\pca10028\dual_bank_ble_s110 [softdevice]    nRF51_SDK_10.0.0_dc26b5e\componen

DTrace to Troubleshoot Java Native Memory Problems

How to Use DTrace to Troubleshoot Java Native Memory Problems on Oracle Solaris 11 Hands-On Labs of the System Admin and Developer Community of OTN by Wang Yu, Vincent Liu, and Gary Wang This lab will introduce the basic concepts of DTrace and provid

实战:oracle巡检脚本v1

/************************************************************************************************************************* 该脚本仅仅是为了工作方便书写,主要是在shell里整合了OS的系统命令和oracle的常见巡检脚本; 脚本执行过程中需要调用OS的系统命令的权限,如果执行脚本的用户是普通账户需要考虑权限设置的问题! ***************************