2015-06-30 2 views
0

Создания Java-код, который отображается следующее: фигураКод для численной пирамиды в Java Программирование

  1 
     2 3 4 
    3 4 5 6 7 
    4 5 6 7 8 9 10 

Эй, ребята! Новое здесь. У нас есть упражнение, связанное с использованием Java-программирования, и по какой-то причине кажется, что моя голова ударит в решении этой проблемы. Есть то, что я сделал до сих пор, но результат неправильный.

public class Pyramid { 
    public static void main(String[] args) { 
     int size = 10; 
     for (int row = 1; row <= size; row++) { 
      int j = 1; 
      int i = 1; 
      int counter1 = 1; 
      int counter2 = 1; 

      // print space 
      while (j++ <= size - row) { 
       System.out.print(" "); 
      } 

      // count up 
      j = size - (size - row); 
      if (j == 10) j = 0; 
      counter1 = 1; 
      while (counter1 <= row) { 
       System.out.print(j); 
       if (j == 9 && counter1 != row) j = -1; 
       j++; 
       counter1++; 
      } 
      j = j - 2; 
      counter2 = 1; 

      // count down 
      while (counter2 < row) { 
       System.out.print(j--); 
       if (j < 0) j = 9; 
       counter2++; 
      } 
      System.out.print("\n"); 
     } 
    } 
} 
+2

Почему вы отметили 'javascript' – Tushar

+1

Какой выход вы получаете? – namezero

+0

Как ** rep-farm ** публикуют разные коды вместо того, чтобы помогать исправлять ваши, и вопрос дублируется. Я сообщу об этом как таковой. – aalku

ответ

0

Здесь вы делаете подсчет после середины каждого сырья. Поэтому вместо увеличения числа вы уменьшаетесь в части счетчика (j уменьшается).

И здесь вам нужно 4 номера сырья. но у вас запрограммировано на 10 номеров сырья с некоторыми условиями (здесь вам не нужно указывать наивысший номер. Вы просто вводите количество сырых файлов. Пожалуйста, найдите Logic ниже).

И хотя вам нужно увеличить количество сырых, логика не должна изменяться.

Логика: Для каждого сырья количество элементов должно быть нечетным числом сырья, а 1-й элемент каждого сырья должен начинаться с номера необработанного.

, например,

если мы рассмотрим 3-е сырым, то третье нечетное число = (3*2) - 1 = 5. Таким образом, количество элементов в raw равно 5. И начальный элемент 3-го сырья - 3. Так сырье будет:

3,4,5,6,7 

Пожалуйста, попробуйте ниже код:

int n = 5; 
    for (int i = 1; i < n; i++) { 
     int odd = (i*2) - 1; 

     for (int j = 1; j <= odd; j++) { 
      if (j==1) { 

       for (int x = n; x >=i; x--) 
        System.out.print(" "); 
      } 

      System.out.print(((j + i)-1) + " "); 
     } 
     System.out.println(); 
    } 

Выход:

 1 
    2 3 4 
    3 4 5 6 7 
4 5 6 7 8 9 10 
+1

Вопрос, очевидно, является домашним заданием, поэтому лучше указать ошибки, чем дать полный решение. Не только это, но вы не исправляете код вопроса, но вы даете новый. Что спросит об этом ученик? – aalku

+0

@ user270349 Я добавлю причину в ближайшее время –

+0

Я удалил нижний план. – aalku

-1
int size = 10; 
    for (int row = 1, last = 1; row <= size; ++row, last += 3) { 
     for (int j = 1, max = size - row; j <= max; ++j) 
      System.out.print(" "); 
     for (int j = row; j <= last; ++j) 
      System.out.print(" " + j); 
     System.out.println(); 
    } 
    // result: 
    //     1 
    //     2 3 4 
    //    3 4 5 6 7 
    //    4 5 6 7 8 9 10 
    //   5 6 7 8 9 10 11 12 13 
    //   6 7 8 9 10 11 12 13 14 15 16 
    //  7 8 9 10 11 12 13 14 15 16 17 18 19 
    //  8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 
    // 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 
    // 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
-1

Попробуйте

класса пирамиды {

public static void main(String[] args) { 
    int myLevel; 
    int i, j, k; 
    int x = 1; 
    myLevel = 6; 

    for (i = 1; i <= myLevel; i++) { 

     for (k = 1; k <= myLevel - i; k++) { 
      System.out.print(" "); 
     } 

     for (j = k + 1; j <= myLevel; j++) { 
      System.out.print(x); 
     } 
     for (int l = myLevel; l > k - 1; l--) { 
      System.out.print(x); 
     } 
     x++; 
     System.out.println(""); 

    } 
} 

}

1

Я вижу две основные ошибки в том, что вы вывесили.

  1. 10 является наибольшим числом в пирамиды, но она имеет только строки. Таким образом, size должен быть равен 4 (если только это не просто пример, а количество строк не важно).
  2. Я не вижу причин, по которым вы делаете обратный отсчет. Вы можете видеть, что числа всегда увеличиваются в одной строке.

В дополнение к этому:

  • Вы должны отделить цифры пробелом. Цифры в вашем примере были привязаны друг к другу. Это означает, что вам нужно изменить количество пробелов перед каждой строкой.(В вашем примере вы можете просто удвоить пробелы)
  • Действительно не важно: вы можете использовать System.out.println(), если хотите новую строку.
Смежные вопросы