Я знаю, что существует много потоков по этой простой задаче, но мне все равно нужно добавить лишний цикл.
До сих пор мне удалось это сделать:
public static void trikotnik(int n){
for (int i = 1; i <= n; i++ )
{
for (int j = 1; j < n; j++ )
System.out.print(" ");
n--;
for (int k = 1; k <= 2*i - 1; k++ )
System.out.print(k);
System.out.println("");
}
}
который выводит красивую пирамиду (игнорировать формат, я не знаю, как это сделать правильно).
1
1 2 3
1 2 3 4 5
1 2 3 4 5 6 7
1 2 3 4 5 6 7 8 9
Однако моя пирамида должна выглядеть так:
1
2 3 4
3 4 5 6 7
4 5 6 7 8 9 0
5 6 7 8 9 0 1 2 3
Благодарим вас за помощь и предложения!
просто измените значение k
во втором цикле, как показано ниже (начните с i
и границы 3*i-2
):
for (int i = 1; i <= n; i++ )
{
for (int j = 1; j < n; j++ )
System.out.print(" ");
n--;
for (int k = i; k <=3*i-2; k++ )
System.out.print(k%10);
System.out.println("");
}
ВЫВОД:
1
234
34567
4567890
567890123
67890123456
7890123456789
890123456789012
.................
Простое решение: используйте счетчик вне цикла и игнорируйте внутренний процесс. Добавьте к ней по каждому вызову и возьмите это значение по модулю 10.
public static void trikotnik(int n) {
int val = 1;
for (int i = 1; i <= n; i++) {
for (int j = 1; j < n; j++)
System.out.print(" ");
n--;
for (int k = 1; k <= 2 * i - 1; k++)
System.out.print(val++%10);
System.out.println("");
}
}
Вывод:
1
234
56789
0123456
789012345