#1
#2 3
#4 5 6
#7 8 9 10
#11 12 13 14 15
这是必需的模式,我使用的代码是
public class Test{
public static void main(String[] args) {
int k = 1;
for (int i = 0; i <= 5; i++){
for (int j = 1; j <= i; j++){
System.out.print(k + " ");
k++;
}
System.out.println();
}
}
}
如您所见,我使用变量 k 来打印数字。 我的问题是,有没有办法在不使用第三个变量 k 的情况下打印完全相同的模式? 我想仅使用 i 和 j 打印图案。
答案 0 :(得分:6)
由于这个问题是一个学习练习,我不会提供完整的解决方案,而是提供一些提示:
priorLine + j
i
,您如何找到i-1
行上打印的最后一个数字的值? - 找到答案,查找formula for computing the sum of arithmetic sequence 。在您的情况下,d = 1且 1 = 1。答案 1 :(得分:0)
您可以使用:
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
for (int j = 0; j < i; j++) {
System.out.print((i * (i - 1)) / 2 + j + 1 + " ");
}
}
}
或者你可以找到第n个术语并每次减去它:
public static void main(String[] args) {
for (int i = 0; i <= 5; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(((i * (i + 1)) / 2) - (i - j) + " ");
// k++;
}
System.out.println(" ");
}
}
答案 2 :(得分:-5)
您可以使用
System.out.println((i+j) + " ");
e.g。
i j (i+j)
0 1 1
1 1 2
2 1 3
2 2 4
..........