2014-11-10 2 views
-11

Задача упражнения - создать метод, который будет работать как в примере. (Мы должны использовать для цикла. Но если вы знаете, как это сделать по-другому, это будет также очень интересно.) Входной номер может быть любым.Сделать метод печати с помощью цикла Java

Пример: Входной сигнал: Выход:

**1** 
*121* 
12321 
*121* 
**1** 

Мой пример:

public static void main(String[] args) { 

    printMatrix(5); 


} 
public static void printMatrix (int n) { 

    int d = n +(n-1); 

    for (int i = 0; i < n ; i++) 
    { 
     for(int j = 1; j <=d; j++){ 
      int abs = Math.abs(j-n); 
      System.out.print(abs>i ? "*" : i-abs+1); 
     } 
     System.out.println(""); 
    } 

Мой выход:

****1**** 
***121*** 
**12321** 
*1234321* 
123454321 

Я не могу сделать следующий шаг, чтобы перевернуть его вверх дном. Доза у кого-нибудь есть идеи?

+1

Да? А также? Любой вопрос? –

+1

В чем вопрос? –

+4

-1 за то, что вы не выполняете свое задание и не заставляете других делать это за вас. – nafas

ответ

0

Я решил это упражнение, но я думаю, что это не идеальное решение. У кого-нибудь есть другой способ решить эту задачу?

public static void main(String[] args) { 

     printMatrix(5); 


    } 
    public static void printMatrix (int n) { 

     int d = n +(n-1); 
     int k = n*2; 
     int g = -1; 

     for (int i = 0; i < d ; i++) 
     { 
      if(i<n){ 
       g++; 
      } 
      else{k=n*2; 
       g--;} 

      for(int j = 1; j <=d; j++){ 
       if (i < n){ 
       int abs = Math.abs(j-n); 
       System.out.print(abs>i ? "*" : i-abs+1); 
       } 
       else{ 
        k--; 
        int abs = Math.abs(k-n); 
        System.out.print(abs>g ? "*" : g-abs+1); 

       } 

      } 
      System.out.println(""); 
     } 

    } 
} 

Выход:

****1**** 
***121*** 
**12321** 
*1234321* 
123454321 
*1234321* 
**12321** 
***121*** 
****1**** 
Смежные вопросы