我需要关于以下练习问题的快速提示:
编写一个程序,生成所有小边不大于n的勾股三元组。尝试使用n <= 200。
“不大于n”是什么意思?
练习来源:Java by Dissection(Ira Pohl和Charlie McDowell)
注意:我发现了一个看起来非常好的有关勾股三元组的文章,但我还不想读它,因为它可能会破坏我自己解决这个问题的尝试...
编辑
如果n是小边a的长度,我们说:n是5; 然后我需要检查所有的三元组,其中a = 1,a = 2,a = 3,a = 4,a = 5,并找到勾股三元组的情况。
这个额外的条件有什么用?
也许如果我展示一个实用的代码片段,你会更加接近理解……这里有一小段(Python)代码,它返回几个三元组。我将外层循环的上限设置为20(目前我看不到“n”有其他用途),以使帖子易于管理。
编写一个程序,生成所有小边不大于n的勾股三元组。尝试使用n <= 200。
“不大于n”是什么意思?
练习来源:Java by Dissection(Ira Pohl和Charlie McDowell)
注意:我发现了一个看起来非常好的有关勾股三元组的文章,但我还不想读它,因为它可能会破坏我自己解决这个问题的尝试...
编辑
如果n是小边a的长度,我们说:n是5; 然后我需要检查所有的三元组,其中a = 1,a = 2,a = 3,a = 4,a = 5,并找到勾股三元组的情况。
这个额外的条件有什么用?
也许如果我展示一个实用的代码片段,你会更加接近理解……这里有一小段(Python)代码,它返回几个三元组。我将外层循环的上限设置为20(目前我看不到“n”有其他用途),以使帖子易于管理。
import math
for b in range(20):
for a in range(1, b):
c = math.sqrt( a * a + b * b)
if c % 1 == 0:
print (a, b, int(c))
这将返回
(3, 4, 5) (6, 8, 10) (5, 12, 13) (9, 12, 15) (8, 15, 17) (12, 16, 20)
这是期望的输出吗?我错过了哪一步?
提前感谢
Baba