Может кто-нибудь взглянуть на мой Java-код для числового ромбовидного узора, используя вложенные циклы?
Я использую вложенные циклы для создания числовых шаблонов. Этот код работает просто отлично, пока я не ввожу число выше 7. Например, когда я вставляю 7, это выглядит так (без пробелов):
1
212
32123
4321234
32123
212
1
Но когда я ввожу 9, это выглядит так:
1
212
32123
4321234
543212345
4321234
32123
Что я делаю не так, чтобы не закончить алмаз?
public void displayPatternVI (int lines)
{
System.out.println("\n\tMy Own Pattern to be implemented\n");
int columns = 1;
int start = 0;
int spaces = lines / 2;
for (int i = 1; i <= 7; i++)
{
for (int j = 1; j <= spaces; j++)
{
System.out.print (" ");
}
if(i < lines/2+1)
{
start = i;
spaces = spaces - 1;
}
else
{
start = (lines + 1 ) - i;
spaces = spaces + 1;
}
for (int j = 1; j <= columns; j++)
{
int midColumn = columns / 2 + 1;
System.out.print(start);
if (j < midColumn)
{
start--;
}
else
{
start++;
}
}
System.out.println();
if(i<lines/2+1)
{
columns = columns + 2;
}
else
{
columns = columns - 2;
}
}
System.out.println();
}
1 ответ
Решение
Как насчет изменения <= 7
в <= 9
(или, скорее всего, переменная, содержащая введенный номер)
Изменить:
for (int i = 1; i <= 7; i++)
в
for (int i = 1; i <= lines; i++)