一道C语言编程问题,高手们来看看帮忙解答下

倒勾股数是满足公式:1/A^2+1/B^2=1/C^2的一组正整数(A,B,C),例如,(156,65,60)是倒勾股数,因为:1/156^2+1/65^2=1/60^2... 倒勾股数是满足公式:1/A^2+1/B^2=1/C^2 的一组正整数(A,B,C),例如,(156,65,60)是倒勾股数,因为:1/156^2+1/65^2=1/60^2。假定A>B>C,且要求A,B,C均小于或等于100,求满足倒勾股数公式的A,B,C之和的最大值是多少? 展开
 我来答
liuyanqiu353
2011-05-28 · 超过23用户采纳过TA的回答
知道答主
回答量:64
采纳率:0%
帮助的人:47.6万
展开全部

先推算公式,C^2*(A^2+B^2),= (A^2*B^2),程序就是找寻能让公式左右相等的ABC的值,且0<c<b<a<100.

#include <stdio.h>

int main()

{

int a;//定义循环变量。

int b;

int c;

int sum;//ABC之和。

for (a = 100;a > 0;a--)//以A为循环变量,在1到100之间。

{

for (b = a-1;b > 0;b--)//以B为循环变量,在1到A之间。

{

for (c = b-1;c > 0;c--)//以C为循环变量,在1到B之间。

{

//判断公式左右两侧是不是相等,相等侧符合题目要求

if (c*c*(a*a+b*b) == a*a*b*b)

{

sum = a+b+c;    //判定成立,求和

printf("SUM = %d\nA = %d\nB = %d\nC = %d\n",sum,a,b,c);

return 0;

}

}

}

}

return 0;

}输出结果为:

百度网友89799553d
2011-05-28 · TA获得超过322个赞
知道小有建树答主
回答量:483
采纳率:0%
帮助的人:309万
展开全部
#include<stdio.h>
#include<math.h>
int main()
{
int a,b,ans=0;
double c;
for (a=100;a>2;--a)
for (b=a-1;b>1;--b)
{
c=sqrt(1.0/(1.0/(a*a)+1.0/(b*b)));
if (c==(int)c) {if (a+b+(int)c>ans) ans=a+b+(int)c;}
}
printf("%d\n",ans);
while (1);
return 0;
}
改了无数次啊。。终于对了。。鄙视一下那个叫“李离萍”的,抄袭我的!可耻!不过是错的~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
谷蔬果乐园d3
2011-05-28
知道答主
回答量:5
采纳率:0%
帮助的人:0
展开全部
#include<stdio.h>
int main()
{
long a = 100,b = 99, c = 98;
for (a = 100;a>2;a--)
{
for (b = a-1; b>1;b--)
{
for (c = b-1;c>0;c--)
{
if((a*a+b*b) == (b*b*c*c+a*a*c*c))
{
printf("Result is %d\n",a+b+c);
return 0;
}
}
}
}
printf("There aren't three numbers like those!\n");
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
李离萍
2011-05-28
知道答主
回答量:12
采纳率:0%
帮助的人:2.9万
展开全部
#include<math.h>
int main()
{
int a,b;
floult c;
for (a=100;a>2;--a)
for (b=a-1;b>1;--b)
{
c=sqrt(1.0/(1.0/(a*a)+1.0/(b*b)));
if (c==(int)c) {printf("%d %d %d\n",a,b,(int)c);while(1);}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式