zoukankan      html  css  js  c++  java
  • p1082 同余方程

    传送门

    题目

    求关于 x 的同余方程 a x ≡1(modb) 的最小正整数解。

    输入格式:

    一行,包含两个正整数 a,b用一个空格隔开。

    输出格式:

    一个正整数 x0即最小正整数解。输入数据保证一定有解。

    分析

    根据方程ax≡1(mod b)可以推出另一个式子ax+by=1,然后我们进行扩展欧几里得即可。注意因为求最小正整数所以最终答案要+b然后mod b。

    代码

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<string>
    #include<algorithm>
    #include<cctype>
    #include<cmath>
    #include<cstdlib>
    #include<queue>
    #include<ctime>
    #include<vector>
    #include<set>
    #include<map>
    #include<stack>
    using namespace std;
    void exgcd(int a,int b,int &x,int &y){
        if(b==0){
            x=1;
            y=0;
            return;
        }
        exgcd(b,a%b,x,y);
        int z=x;
        x=y;
        y=z-(a/b)*y;
        return;
    }
    int main(){
        int n,m,i,j,k,a,b,x,y;
        cin>>a>>b;
        exgcd(a,b,x,y);
        cout<<(x+b)%b<<endl;
        return 0;
    }
  • 相关阅读:
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    剑指offer-栈的压入、弹出序列
    剑指offer-包含min函数的栈
    图-Dijkster最短路径
    剑指offer-顺时针打印矩阵
    二叉树的镜像
    剑指offer-树的子结构
  • 原文地址:https://www.cnblogs.com/yzxverygood/p/9152215.html
Copyright © 2011-2022 走看看