Java算法题目小记3:勾股定理,西方称为毕达哥拉斯定理,它所对应的三角形现在称为:直角三角形.已知直角三角形的斜边是某个整数,并且要求另外两条边也必须是整数。 求满足这个条件的不同直角三角形的个数。

题目

勾股定理,西方称为毕达哥拉斯定理,它所对应的三角形现在称为:直角三角形。
已知直角三角形的斜边是某个整数,并且要求另外两条边也必须是整数。
求满足这个条件的不同直角三角形的个数。

【数据格式】
输入一个整数 n (0<n<10000000) 表示直角三角形斜边的长度。
要求输出一个整数,表示满足条件的直角三角形个数。

例如,输入:
5
程序应该输出:
1

再例如,输入:
100
程序应该输出:
2

再例如,输入:
3
程序应该输出:
0

代码

import java.util.Scanner;

public class Demo {
    public static void main(String[] args) {
        int i,n;
        int sum = 0;
        int temp;
        System.out.println("请输入一个0到10000000之间的整数");
        Scanner scanner = new Scanner(System.in);
         n = scanner.nextInt();
        if (n<10000000){
            for (i=1;i<n;i++){
                temp= (int) Math.sqrt(n*n-i*i);
                if(temp*temp==n*n-i*i){
                    sum++;
                }
            }
            System.out.println(sum/2);//除2去重
        }
    }
}

知识点:
Math.sqrt():返回参数的算术平方根。

参考文章:传送门


版权声明:本文为weixin_44894962原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。