2015-05-27 3 views
-1

Я пытаюсь получить этот результат:Выход в вложенных циклов

123454321 
1234 4321 
123 321 
12  21 
1  1 

Я попытался сделать этот первый:

12345 
1234 
123 
12 
1 

Затем, положив «\ г» и положить это рядом выше:

4321 
4321 
321 
21 
1 
+1

чем проблема у вас возникли именно? Также отправьте код, который вы использовали для получения вашего текущего результата. Наконец, добавьте язык, который вы используете, в теги вопроса. Это привлечет внимание соответствующих людей. – npinti

+0

Любой конкретный язык? – Adam

+0

Я использую Java (компилятор BlueJ), я не могу правильно получить результат. – ineedhelpinlogic

ответ

1

ниже код дает выход вы упомянули

package com.hello; 

public class Test { 

/** 
* @param args 
*/ 
public static void main(String[] args) { 
    printNumbers(5,5); 
} 

private static void printNumbers(int max,int iteration) 
{ 
    String line =""; 
    int NoOfSpaces = (max-iteration)*2 -1; 

    if(iteration == 0) 
     return; 
    for(int i=1;i<=iteration;i++) 
     line = line+i; 
    for(int i =0;i<NoOfSpaces;i++) 
     line = line+" "; 
    if(max != iteration) 
     line = line +iteration; 
    for(int i=iteration-1;i>=1;i--) 
     line = line +i; 
    System.out.println(line); 
    printNumbers(max,--iteration); 

    } 
} 

дайте мне знать, если у вас есть какие-либо дополнительные вопросы ....

+0

Можно ли это сделать без использования пакета? Если да, то как? – ineedhelpinlogic

0

Проблема может быть решена рекурсивно, используя следующий код:

public static void recurseForward(int to, int space) { 
    if (to == 0) { 
     return; 
    } 
    for (int i = 1; i <= to; i++) { 
     System.out.print(i); 
    } 
    for (int i = 0; i < space; i++) { 
     System.out.print(" "); 
    } 
    recurseBackward(to, space); 
} 

public static void recurseBackward(int from, int space) { 
    for (int i = 0; i < space; i++) { 
     System.out.print(" "); 
    } 
    for (int i = from; i > 0; i--) { 
     System.out.print(i); 
    } 
    System.out.println(""); 
    recurseForward(from - 1, space + 1); 
} 

public static void main(String[] args) { 
    recurseForward(5, 0); 
} 
Смежные вопросы