求x^2+y^2=2000方程的所有解.

songzx20 2006-12-30 10:03:28
求x^2+y^2=2000方程的所有整数解.
并显示出来
...全文
555 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
DarknessTM 2007-01-02
  • 打赏
  • 举报
回复
这不就是圆方程,解救是 半径为20根号5为半径的圆……
caocheng8230 2007-01-02
  • 打赏
  • 举报
回复
用迭代法也不错
caitian6 2007-01-02
  • 打赏
  • 举报
回复
up
DraculaW 2007-01-02
  • 打赏
  • 举报
回复
没什么好说的了 穷举法 呵呵
smileflyer 2007-01-02
  • 打赏
  • 举报
回复
想问问 akirya

怎么能是X的步少一些那?看Aaron_Jerry 和 你之后 我把X+1了
smileflyer 2007-01-02
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <math.h>

int IsSquare(int tn);

int main(void)
{
int tn;
int k=(int)(sqrt(2000))+1;
int x=0;

while(x<k)
{
tn=2000-x*x;
if(IsSquare(tn))
{
printf("x=%d,y=%d\n",x,(int)(sqrt(tn)));
}
x++;

}
return 0;
}

int IsSquare(int tn)
{
double x=sqrt(tn);
return (x-(int)x==0);
}
liangfan1983 2007-01-02
  • 打赏
  • 举报
回复
int loop,x,y;
loop=(int)sqrt(2000);
for( x = 1;x <= loop; x++)
for( y = x;y <= loop; y++)
if(x*x + y*y == 2000)
printf("x=%d y=%d\n",x,y);
输出的结果无重复,因为x,y是对称
liangfan1983 2007-01-02
  • 打赏
  • 举报
回复
int loop,x,y;
loop=(int)sqrt(2000);
for( x = 1;x <= loop; x++)
for( y = x;y <= loop; y++)
if(x*x + y*y == 2000)
printf("x=%d y=%d\n",x,y);
输出的结果无重复,因为x,y是对称
liangfan1983 2007-01-02
  • 打赏
  • 举报
回复
int loop,x,y;
loop=(int)sqrt(2000);
for( x = 1;x <= loop; x++)
for( y = x;y <= loop; y++)
if(x*x + y*y == 2000)
printf("x=%d y=%d\n",x,y);
输出的结果无重复,因为x,y是对称
Aaron_Jerry 2006-12-30
  • 打赏
  • 举报
回复
int tn;
int k=(int)(sqrt(2000));
for(x=1;x<=k;x++)
{
tn=2000-x*x;
if(!IsSquare(tn))continue;//IsSquare自己在外面定义下用来判断一个整数是否为完全平方数
else
printf("x=%d,y=%d\n",x,(int)(sqrt(tn)));
}
  • 打赏
  • 举报
回复
x=8,y=44
x=20,y=40
x=40,y=20
x=44,y=8

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧