вывод прямоугольного треугольника на экран

У меня есть код, который печатает прямоугольный треугольник вида:

    0
   01
  012
 0123 
01234

И так далее.

Но, когда цикл доходит до значения > 9, он печатает:

           0
          01
         012
        0123
       01234
      012345
     0123456
    01234567
   012345678
  0123456789
 012345678910
01234567891011

Как мне сделать, чтобы вместо 10, 11, 12 и т.д, код печатал цифры заново, начиная с 0, чтобы получалось:

           0
          01
         012
        0123
       01234
      012345
     0123456
    01234567
   012345678
  0123456789
 01234567890
012345678901

Вот мой код:

public class Main {
    public static void Triangle(int s){
        int last_number = (s / 2) - 1;
        for (int i = 0; i <= last_number; i++){
            Spaces.SpaceForTriangle(last_number, i);
            for (int j = 0; j <= i; j++){
                System.out.print(j);
            }
            System.out.print(" \n");
        }
    }
  • Spaces.SpaceForTriangle - это отдельный класс для пробелов:
public static void SpaceForTriangle(int last_number, int i) {
        for (int k = last_number; k > i; k--){
            System.out.print(" ");
        }
    }

Есть также вторая часть, которая должна выводить:

     43210 
     3210 
     210 
     10 
     0 

тут та же проблема, когда цикл доходит до значения > 9, то печатает

           109876543210 
           9876543210 
           876543210 
           76543210 
           6543210 
           543210 
           43210 
           3210 
           210 
           10 
           0

а нужно, чтобы печатал:

            2109876543210
            109876543210
            09876543210 
            9876543210 
            876543210 
            76543210 
            6543210 
            543210 
            43210 
            3210 
            210 
            10 
            0

и т.д.

В итоге у меня всё получается верно, но до того момента, пока цикл не дойдёт до значения >9:

          0 
         01 
        012 
       0123 
      01234 
     012345 
    0123456 
   01234567
           76543210 
           6543210 
           543210 
           43210 
           3210 
           210 
           10 
           0 

Код для второго треугольника:

public static void InvertedTriangle(int s){
        int last_number = (s / 2) - 1;
        int last = last_number;
        for (int i = 0; i <= last_number; i++) {
            Spaces.SpaceForInvertedTriangle(last_number);
            for (int j = last; j >= 0; j--){
                System.out.print(j);
            }
            System.out.print(" \n");
            last -= 1;
        }
    }
  • Размер фигуры s должен быть чётным положительным числом.

Помогите, пожалуйста, я новичок в java, и не очень понимаю, как это можно реализовать


Ответы (0 шт):