2017年计算机二级office操作题-2017年计算机二级C++辅导实例编程(3)

副标题:2017年计算机二级C++辅导实例编程(3)

时间:2023-11-04 08:20:01 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。


  两个数论的算法

  #include

  using namespace std;

  struct result

  {

  int d;

  int x;

  int y;

  };

  //d=gcd(a,b)=ax+by

  result ExtendeEuclid(int a,int b)

  {

  result res;

  if(!b)

  {

  res.d=a;

  res.x=1;

  res.y=0;

  return res;

  }


  result temp=ExtendeEuclid(b,a%b);

  res.d=temp.d;

  res.x=temp.y;

  res.y=temp.x-a/b*temp.y;

  return res;

  }

  inline long mod(long a,long b)

  {

  return (a%b+b)%b;

  }

  //计算满足ax和b关于n同余的x

  void ModularLinearEquationSolver(int a,int b,int n)

  {

  if(a<=0||n<=0)

  {

  cout<<"参数有错"<

  return ;

  }

  result re=ExtendeEuclid(a,n);

  if(b%re.d==0)

  {

  int x0=mod(re.x*(b/re.d),n);

  for(int i=0;i<=re.d-1;i++)

  {

  cout<

  }

  }

  else

  {

  cout<<"无解"<

  }

  }

  int main()

  {

  ModularLinearEquationSolver(14,30,100);

  return 0;

  }

2017年计算机二级C++辅导实例编程(3).doc

本文来源:https://www.wddqw.com/u3oO.html