用java打印数字三角形
我在Java课程的家庭作业上遇到了一些问题。在它里面,我们应该取一个介于1和13之间的整数,并显示三个不同的三角形,由数字组成。例如,如果输入5,结果将是: 三角形1用java打印数字三角形,java,Java,我在Java课程的家庭作业上遇到了一些问题。在它里面,我们应该取一个介于1和13之间的整数,并显示三个不同的三角形,由数字组成。例如,如果输入5,结果将是: 三角形1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 三角形2 1 2 6 3 7 10 4 8 11 13 5 9 12 14 15 三角形3 5 4 9
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
三角形2
1
2 6
3 7 10
4 8 11 13
5 9 12 14 15
三角形3
5
4 9
3 8 12
2 7 11 14
1 6 10 13 15
我已经把第一个三角形做好了,但我最担心的是第二个三角形。我还没有试过第三个。另一件事是,我的教授对我们在创建项目时使用的方法很挑剔。换句话说,我们只能使用他教给我们的东西。他告诉我们使用System.out.printf(“%3d”,n)语句来分隔字符,我们必须在单独的类中创建它们
第一个三角形的代码如下所示:
void triangle1(int n)
{
int k = 1;
for (int i = 1; i <= n; i++)
{
for (int j = 0; j < 1; j++)
{
System.out.printf("%3d", n);
k += 1;
}
System.out.println();
}
}
void三角形1(int n)
{
int k=1;
对于(inti=1;i,这里是我处理它的方法
程序一次打印一行,不能先打印半行,然后再开始打印另一行
说到这里,你应该能辨认出三角形的图案
1
2 6
3 7 10
4 8 11 13
5 9 12 14 15
您有第一个数字n
,然后您会看到下一行以n+1
开头。下一行以(n+1)+t
开头,其中t=4
。有一个模式
第三行遵循相同的模式。
第一个数字是(n+1)
,然后您可以通过+(t-1)
这可以通过for循环完成,就像您第一次做的那样
对于最后一个三角形,你可以使用相同的过程,只要改变符号,t将等于不同的东西
算法编写是关于识别模式的。如果你仔细观察,你会发现在每个数字和给定行上的数字之间有一个重复的模式
3 7 10 => [3 & 7 differ by 4][7 & 10 differ by 3]
4 8 11 13 => [4 & 8 differ by 4][8 & 11 differ by 3][11 & 13 differ by 2]
5 9 12 14 15 => [... differ by 4][... by 3][... by 2][... by 1]
你可以利用这些信息来制作第二个三角形。剩下的就交给你了。我希望这会有帮助!你似乎是一名CS学生,因此我不会给出一个完整的解决方案。我会给你一些提示如何解决这个问题
这就是print语句必须执行的操作:
对于i=1 j=0,打印1
对于i=2 j=0,打印2
对于i=2 j=1打印6
对于i=3 j=0,打印3
对于i=3 j=1打印7
对于i=3 j=2,打印10
找到一个公式来计算i和j的正确输出,这是一个简单的线性组合。我建议您编写一个只处理第一列的程序。然后对其进行修改,使其处理前两列。从那里,它应该是显而易见的。显示您为第二次三角形尝试编写的代码。让我们看看您到目前为止写了什么,然后我们可以很高兴地引导您朝正确的方向前进。代码中的k
有什么用吗?谢谢您的帮助!我已经完成了第二个三角形。现在我只需要完成第三个三角形。@Atarinerd80没问题,很高兴我能帮上忙。