Java 如何使用logic loop打印出20个毕达哥拉斯数的非全等三角形

Java 如何使用logic loop打印出20个毕达哥拉斯数的非全等三角形,java,Java,如何使用logic loop打印出20个毕达哥拉斯数的非全等三角形。 没有重复的数字,即如果我有4,3,5,我就不能有3,4,5 我使用了“for”循环,但我不知道如何删除重复的答案 for (k = 0; k < 50; k++) { for ( i = 0; i < 50; i++) { for ( j = 0; j < 50; j++) { if ( (

如何使用logic loop打印出20个毕达哥拉斯数的非全等三角形。 没有重复的数字,即如果我有4,3,5,我就不能有3,4,5

我使用了“for”循环,但我不知道如何删除重复的答案

for (k = 0; k < 50; k++)
    {
        for ( i = 0; i < 50; i++)
        {
            for ( j = 0; j < 50; j++)
            {
                if ( (k+1)*(k+1) + (i+1)*(i+1) == (j+1)*(j+1) )
                {
                    System.out.println( "\n\n\t\tThe numbers are : " + (k+1) + ", "
                                                                     + (i+1) + ", "
                                                                     + (j+1) );
                }
            }
        }
    }
(k=0;k<50;k++)的

{
对于(i=0;i<50;i++)
{
对于(j=0;j<50;j++)
{
如果((k+1)*(k+1)+(i+1)*(i+1)=(j+1)*(j+1))
{
System.out.println(“\n\n\t\t数字为:”+(k+1)+“
+(i+1)+“,”
+(j+1));
}
}
}
}
想到两个(相关的)选项:您可以按排序顺序“保留”每个三元组,因此当您找到{4,3,5}时,您可以将其转换为{3,4,5},然后将其保存,以便以后与任何其他三元组进行唯一性比较。或者,您可以创建一个“Triple”类,在该类中定义一个类似于
boolean equals(final Triple rval)
的方法,该方法从最低到最高对每个元素进行比较。当然,可能还有其他方法可以做到这一点

更新:考虑到您刚才添加的代码,如果您只想打印出来,那么您可能不需要像我上面所假设的那样保留您找到的三元组。对代码的以下修改可能会起作用:

for (k = 0; k < 50; k++)
{
    for ( i = k; i < 50; i++)
    {
        for ( j = i; j < 50; j++)
        {
            if ( (k+1)*(k+1) + (i+1)*(i+1) == (j+1)*(j+1) )
            {
                System.out.println( "\n\n\t\tThe numbers are : " + (k+1) + ", "
                                                                 + (i+1) + ", "
                                                                 + (j+1) );
            }
        }
    }
}
(k=0;k<50;k++)的

{
对于(i=k;i<50;i++)
{
对于(j=i;j<50;j++)
{
如果((k+1)*(k+1)+(i+1)*(i+1)=(j+1)*(j+1))
{
System.out.println(“\n\n\t\t数字为:”+(k+1)+“
+(i+1)+“,”
+(j+1));
}
}
}
}

请注意,我更改了内部循环的起点,以确保您将找到的所有三元组都保持以下状态:
k到目前为止您做了什么?用你的代码更新这个问题。我没有添加整数k,I,j等。请看这个集合m=2到m=21