51nod 1256 乘法逆元

模板题目,扩展欧几里得

#include <iostream>

using namespace std;

int a,b,x,y;

int exGcd(int a, int b, int& x, int& y)
{
  if (b == 0)
  {
    x = 1;
    y = 0;
    return a;
  }
  int g = exGcd(b,a%b,x,y);
  int tmp = x;
  x = y;
  y = tmp - (a / b) * y;
  return a;
}

int main()
{
  std::ios::sync_with_stdio(false);
  cin >> a >> b;
  exGcd(a,b,x,y);
  cout << (x%b+b)%b << endl;
  return 0;
}


你可能感兴趣的:(C++,扩展欧几里得)