Loading

由于3²+4²=5²,所以称‘3,4,5‘为勾股数,求n(包括n)以内所有勾股数数组。

由于3²+4²=5²,所以称'3,4,5'为勾股数,求n(包括n)以内所有勾股数数组。

比如:10以内的勾股数组:['3,4,5','6,7,8']

目录

一、题目分析

二、程序代码

三、运行结果


一、题目分析

我们都学过勾股定理,知道勾股定理需要满足a²+b²=c²,我们可以把等式两边拆开来处理,首先

遍历一次1~n,存储c的平方结果集,然后通过双层for循环计算a²+b²,最后判断a²+b²的和是否在c的平方结果集当中,如果在,就说明,a,b,c满足勾股数关系。

二、程序代码

package com;

import java.util.ArrayList;
import java.util.List;

public class Main {

	public static void main(String[] args) {
		int n = 10;
		List<Integer> zList = new ArrayList<>();
		for (int i = 1; i <= n; i++) {
			zList.add(i * i);
		}
		List<String> result = new ArrayList<>();
		for (int x = 1; x < n; x++) {
			for (int y = x; y < n; y++) {
				int z = x * x + y * y;
				if (zList.contains(z)) {
					result.add(String.format("'%d,%d,%d'", x, y, (int) Math.sqrt(z)));
				}
			}
		}
		System.out.println(result);
	}

}

三、运行结果

posted @ 2022-04-22 22:04  Roc-xb  阅读(42)  评论(0编辑  收藏  举报

易微帮源码


易微帮官网