最好写个程序:
int max=200;
int a,b,c;
double d;
for(a=100;a<=max;a++)
for(b=a+1;b<=max;b++)
{
d=sqrt(a*a+b*b);
c=(int)d;
if (c==d&&c<=200)
print("("+a+" "+b+" "+c+") ");
}
三个数全是200内的有
(100 105 145) (102 136 170) (104 153 185) (105 140 175)
(108 144 180) (111 148 185) (114 152 190) (117 156 195)
(119 120 169) (120 126 174) (120 160 200) (130 144 194)
追问(int)d==d 不是一个小数与一个整数比较,恒不相等吗?
追答在高级编程语言中,像1.0==1这样的语句是真的,如果不放心,可以改为判断 d-(int)d >0
本回答被提问者采纳