习题3

题目如下

假设a、b、c是三角形的三条边,当三条边符合勾股定理时,即,a2+b2=c2 ,为直角三角形。若a、b、c均为小于等于50的整数,求能够组成直角三角形的所有组合。请显示边的各种可能组合情况,显示总的组合数量。注意:
    (a=3, b=4, c=5)
    (a=4, b=3, c=5)
    (a=5, b=4, c=3)
等情况只能算1种组合。(参考答案:20种)

定义num计数

int num=0;

由于求三角形的三条边,所以此处使用三层for循环

for(int a=1;a<=50;a++){
            for(int b=1;b<=50;b++){
                for(int c=1;c<=50;c++){
                }
            }
        }

题目要求求能够组成直角三角形的所有组合

定义if条件

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

并且题目规定

 (a=3, b=4, c=5)
 (a=4, b=3, c=5)
 (a=5, b=4, c=3)
等情况只能算1种组合。

所以if条件增加

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

输出组合情况,num计数

if(a*a+b*b==c*c&&a<b){
                        System.out.println("a="+a+" "+"b="+b+" "+"c="+c+" ");
                        num++;
                    }

最后输出显示总的组合数量

public static void main(String[] args) {
        int num=0;
        for(int a=1;a<=50;a++){
            for(int b=1;b<=50;b++){
                for(int c=1;c<=50;c++){
                    if(a*a+b*b==c*c&&a<b){
                        System.out.println("a="+a+" "+"b="+b+" "+"c="+c+" ");
                        num++;
                    }
                }
            }
        }
        System.out.println(num);
    }

结果

原文地址:https://www.cnblogs.com/FrankLiner/p/7502896.html