英文:
Java: Having trouble printing out this pyramid-like reversed number pattern
问题
for (int i = num; i >= 1; i--)
{
for (int j = num - i + 1; j <= num; j++)
{
System.out.print(j + " ");
}
System.out.println();
}
for (int i = 2; i <= num; i++)
{
for (int j = num - i + 1; j <= num; j++)
{
System.out.print(j + " ");
}
System.out.println();
}
Note: The code provided above is the corrected version to achieve the desired pattern.
英文:
I need to know how to print out the following pattern:
5
4 5
3 4 5
2 3 4 5
1 2 3 4 5
2 3 4 5
3 4 5
4 5
5
Any and all help is appreciated.
What i have so far is this:
for (int i = 1; i <= num; i++)
{
for (int j = 1; j <= i; j++)
{
System.out.print(j+" ");
}
System.out.println();
}
for (int i = num-1; i >= 1; i--)
{
for (int j = 1; j <= i; j++)
{
System.out.print(j+" ");
}
System.out.println();
}
and it outputs this:
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4
1 2 3
1 2
1
So I have the structure of the pattern itself understood, but it seems that I need to reverse the flow somehow. This is what I do not understand.
答案1
得分: 2
更改循环条件如下所示:
public class Main {
public static void main(String[] args) {
int num = 5;
for (int i = num; i >= 1; i--) {// 从 num 开始向下循环到 1
for (int j = i; j <= num; j++) {// 从 i 开始向上循环到 num
System.out.print(j + " ");
}
System.out.println();
}
for (int i = 2; i <= num; i++) {// 从 2 开始向上循环到 num
for (int j = i; j <= num; j++) {// 从 i 开始向上循环到 num
System.out.print(j + " ");
}
System.out.println();
}
}
}
输出:
5
4 5
3 4 5
2 3 4 5
1 2 3 4 5
2 3 4 5
3 4 5
4 5
5
英文:
Change the loop conditions as shown below:
public class Main {
public static void main(String[] args) {
int num = 5;
for (int i = num; i >= 1; i--) {// Start with num and go downwards up to 1
for (int j = i; j <= num; j++) {// Start with i and go upwards up to num
System.out.print(j + " ");
}
System.out.println();
}
for (int i = 2; i <= num; i++) {// Start with 2 and go downwards up to num
for (int j = i; j <= num; j++) {// Start with i and go downwards up to num
System.out.print(j + " ");
}
System.out.println();
}
}
}
Output:
5
4 5
3 4 5
2 3 4 5
1 2 3 4 5
2 3 4 5
3 4 5
4 5
5
答案2
得分: 1
已接受的答案没有输出正确的模式,所以这段代码是有效的。
有两个循环,每个循环逐行迭代。第一个循环从5到1,第二个循环从2到5。
在每次迭代(每行)中,将在第一个数字旁边打印后续数字。
int num = 5;
for(int i = num ; i > 0 ; i--){
System.out.print(i+" "); // 打印行的第一个数字
for(int j = 1; j <= num-i; j++){
// 根据行的需要打印额外的数字(第一行 = 0个额外数字,
// 第二行 = 1个额外数字...)
System.out.print((i+j)+" ");
}
System.out.println(); // 换行
}
for (int i = 2; i <= num; i++) { // 打印第二部分,从2开始
for (int j = i; j <= num; j++) { // 打印额外数字
System.out.print(j+" ");
}
System.out.println(); // 换行
}
输出结果如预期:
5
4 5
3 4 5
2 3 4 5
1 2 3 4 5
2 3 4 5
3 4 5
4 5
5
英文:
Accepted answer not output the corrent pattern so... this code works.
Ther are two loops, each one iterate line by line. First from 5 to 1, the second one from 2 to 5.
In every iteration (every line) will print next to the first number the following numbers.
int num = 5;
for(int i = num ; i > 0 ; i--){
System.out.print(i+" "); //Print the first number of the line
for(int j = 1; j <= num-i; j++){
//Print as extra number as line need (first line = 0 extra numbers,
//second line = 1 extra number...)
System.out.print((i+j)+" ");
}
System.out.println(); //New line
}
for (int i = 2; i <= num; i++) { //Print second part starting by 2
for (int j = i; j <= num; j++) { //Print extra numbers
System.out.print(j+" ");
}
System.out.println(); //New line
}
And the output is as expected:
5
4 5
3 4 5
2 3 4 5
1 2 3 4 5
2 3 4 5
3 4 5
4 5
5
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论