вывод прямоугольного треугольника на экран
У меня есть код, который печатает прямоугольный треугольник вида:
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, и не очень понимаю, как это можно реализовать