int main()
{
int i
scanf("%d", &i)
for(int a = 1 a <= i a++)
{
for(int b = a b <= i b++)
{
for(int c = b c <= i c++)
{
if(a*a + b*b == c*c)
{
printf("%d %d %d\n", a, b, c)
}
}
}
}
}
#include"stdio.h"int main(int argc, char* argv[])
{
int a,b,c,count=0
for(a=1a<=1000a++)
for(b=1b<=1000b++)
for(c=a-bc<a+b &&c<1000c++)
if(c*c==(a*a + b*b)){
count+=1
printf("%d,%d,%d\n",a,b,c)
}
printf("共计有 %d 组\n",count)
system("pause")
return 0
}
这是一种编程技巧,主要用来防止勾股定理的两边长度(a和b)相等的情况。如果两边相等,那么斜边长为0,显然不是一个合法的直角三角形,此时程序需要退出,而不是进行无意义的计算。让b=a+1就可以保证两边长度不相等,进而避免上述情况的出现。