急用!!!

打错。。。是这个:如何解佩尔方程。。对不起啊~... 打错。。。
是这个:
如何解佩尔方程。。
对不起啊~
展开
2007只如初见
2012-08-21
知道答主
回答量:11
采纳率:0%
帮助的人:9.1万
展开全部
C++程序求解佩尔方程:  #include <iostream>
  #include <cmath>
  using namespace std;
  struct PellAns
  {
  int p,q;
  };
  struct Node
  {
  int g,h;
  };
  PellAns Solve( int n)
  {
  PellAns s[4];
  Node w[4];
  int a[4];
  s[0].p=0; s[0].q=1;
  s[1].p=1; s[1].q=0;
  a[0]=(int)floor(sqrt( (double)n ));
  a[2]=a[0];
  w[1].g=0;w[1].h=1;
  while( 1 )
  {
  w[2].g = -w[1].g+a[2]*w[1].h;
  w[2].h = (n-w[2].g*w[2].g)/w[1].h;
  a[3] = (int)floor( (double)(w[2].g+a[0])/w[2].h );
  s[2].p = a[2]*s[1].p+s[0].p;
  s[2].q = a[2]*s[1].q+s[0].q;
  if( (s[2].p*s[2].p-n*s[2].q*s[2].q) == 1 &&s[2].p>0&&s[2].q>0 )
  return s[2];
  w[0]=w[1];w[1]=w[2];
  a[2]=a[3];
  s[0]=s[1];s[1]=s[2];
  }
  }
  int main()
  {
  int n;
  PellAns ans;
  while( scanf("%d",&n) )
  {
  ans = Solve(n);
  printf("%d %d\n",ans.p,ans.q);
  }
  return 0;
  }
百度网友49378cde8
2012-08-21
知道答主
回答量:51
采纳率:0%
帮助的人:10.5万
展开全部
用什么
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式