专栏文章

Albert_lob--P1082

题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@mion55tm
此快照首次捕获于
2025/12/02 21:55
3 个月前
此快照最后确认于
2025/12/02 21:55
3 个月前
查看原文

P1082 同余方程题解

此题虽然是绿题,但因为其是数论题的本质,但只要掌握其内在方法,便非常简单;
题目有两个字:方程,其实我们也可以用枚举法来模拟方程,但时间我可不保证不会TIE
其实不难发现,题目中是有一些规律的,当我们写代码的时候,可以列一个式子:
(ax)÷(bh)=1(a·x) \div (b·h)=1
当我们把这条式子写进程序后,程序编号了不少!
接下来,发放程序吧!
CPP
#include<iostream>
using namespace std;
long long x,y;//定义两个超长整形;
void e(long long a,long long b){//创建同余方程式函数; 
	if(b==0){//b没了! 
		x=1;
		y=0;
		return;//over; 
	}
	e(b,a%b);
	long long tmp;
	tmp=x; 
	x=y;//把x变为y; 
	y=tmp-a/b*y;//x-a/b*y//向最小可余一整数递推; 
}
int main(){
	long long a,b;//定义两个超长整形;
	scanf("%lld%lld",&a,&b); 
	e(a,b);//求最小的整数;
	x = (x % b + b) % b;//求最小的x;
	printf("%d",x);
	return 0;
}
作弊者可耻!
不许抄答案!!

评论

0 条评论,欢迎与作者交流。

正在加载评论...