7,特殊毕达哥拉斯三元组

毕达哥拉斯三元组是三个自然数a < b < c组成的集合,并满足a2 + b2 = c2 ,如32 + 42 = 9 + 16 = 25 = 52,有且只有一个毕达哥拉斯三元组满足 a + b + c = 1000,求这个三元组的乘积

 1 void test7(int num){ //num=1000
 2     int i,j,k;
 3     int c;
 4     for(i=1; i<num/3; i++){ // i为最小直角边
 5         for(j=i+1; j<num-i; j++){
 6             // for(k=j+1; k<num; k++){ //暴力破解法
 7             k = num-i-j;    //能减少循环次数
 8                 if(k>j && i*i + j*j == k*k)
 9                     // if(i+j+k==num)
10                         printf("%d\t%d\t%d=>%d\n",i,j,k,i*j*k);
11             }
12     }
13 }

 

posted @ 2020-07-11 10:47  鱹鱹  阅读(243)  评论(0编辑  收藏  举报