Alpha Prep Tasks Java - Number triangles

Здравейте!

Имам проблем с една от задачките (Number-Triangles) Java
Игнорирайки това че може би не решавам задачата както трябва (като подход), опитвам се да свържа две части от код за Възходящ+Низходящ триъгълник, който съвпада с това което се търси в уловието:

Numbers Triangle

You are given the number N .

Based on it, print triangles as follows:

Example : N = 3

1
1 2
1 2 3
1 2
3

Example : N = 5

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

==

==
Въпроса ми е, как да свържа двата края (текущия код ми дава грешка за втората част integer i
или как да я реша по различен начин?

Заповядай едно бързо решение. Най-общо казано, външния цикъл върти от 1 до 2*n-1 това е броя на редовете, а вътрешния цикъл върти от 1 до номера на текущия ред минус 2*back. Точно това е нещото което свива границата на цикъла, а самата променлива back се увеличава за всеки следващ ред.
Разгледай го внимателно и проследи какво точно прави като използваш “буболечката” :slight_smile:

import java.util.Scanner;

public class Exercise {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = Integer.parseInt(scanner.nextLine());

        int back = 0;
        for (int i = 1; i <= 2 * n - 1; i++) {
            if (i > n) {
                back++;
            }
            for (int j = 1; j <= i - 2 * back; j++) {
                System.out.print(j + " ");
            }
            System.out.println();
        }
    }
}
1 Like

Благодаря за помощта Ивайло!

Здравей,ето ти още едно решение! https://pastebin.com/YYRLjvkk

Благодаря за решението Gstukaniov