c语言求勾股数

Python015

c语言求勾股数,第1张

#include "stdafx.h"

 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就可以保证两边长度不相等,进而避免上述情况的出现。