Albert_lob--P1082
Albert_lob · · 题解
P1082 同余方程题解
此题虽然是绿题,但因为其是数论题的本质,但只要掌握其内在方法,便非常简单;
题目有两个字:方程,其实我们也可以用枚举法来模拟方程,但时间我可不保证不会TIE;
其实不难发现,题目中是有一些规律的,当我们写代码的时候,可以列一个式子:
当我们把这条式子写进程序后,程序编号了不少!
接下来,发放程序吧!
#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;
}
作弊者可耻!
不许抄答案!!