Member 12731696 Ответов: 1

Как напечатать серию натуральных чисел в виде двух пирамид, одной нормальной и одной перевернутой, используя один цикл for?


Я пытаюсь создать такой паттерн, который основан на вводе пользователя .Здесь вход num=7

Выход

1

1 2 

1 2 3 

1 2 3 4

1 2 3 4 5 

1 2 3 4 5 6 

1 2 3 4 5 6 7

1 2 3 4 5 6 

1 2 3 4 5 

1 2 3 4

1 2 3 

1 2 

1


Вот мой код:


import java.util.Scanner;
    class Test
    {
    public static void main(String arr[])
    {
        Scanner input=new Scanner(System.in);
        System.out.println("Enter a no to print a symmetrical pyramid :");
        int num=input.nextInt();
        
        //Printing normal Pyramid
        
       for(int i=0;i<=num;i++)
       {
           for(int j=1;j<i;j++)
           {
               System.out.print(j); 
           }
           
           System.out.println("");   
       }
        //Middle 
        for(int i=1;i<=num;i++)
        {
            System.out.print(i);
        }
        System.out.println("");
       
        //Printing inverted Pyramid
        
        for(int i=num;i>=0;i--)
        {
           for(int j=1;j<i;j++)
           {
               System.out.print(j); 
           }
           
           System.out.println("");
            
        }
        
    }
    }


Что я уже пробовал:

Как я могу добиться того же результата, используя только 1 цикл for?

Заранее спасибо !! :)

1 Ответов

Рейтинг:
4

Patrice T

Мы не делаем вашу домашнюю работу.
Домашнее задание не предназначено для проверки ваших навыков просить других людей выполнять вашу работу, оно предназначено для того, чтобы помочь вашему учителю проверить ваше понимание пройденных вами курсов, а также проблем, возникающих при их применении.
Любая ваша неудача поможет учителю выявить ваши слабости и наметить меры по их исправлению.
Итак, перечитайте свои уроки и приступайте к работе. Если вы застряли на конкретной проблеме, покажите свой код и объясните эту точную проблему, мы можем помочь.

У вас есть 5 циклов в вашем коде.
- Вы можете удалить петлю средней линии, просто сказав, что в верхнем треугольнике есть еще 1 линия.
- Вы можете объединить верхний и Нижний треугольники с помощью умного использования абсолютной функции (abs ()).
- А с помощью рекурсивной функции можно смоделировать цикл без цикла.
Настоящая работа остается за вами, так как это домашнее задание.

-----------------------
Вы должны научиться использовать отладчик как можно скорее. Вместо того чтобы гадать, что делает ваш код, пришло время увидеть, как он выполняется, и убедиться, что он делает то, что вы ожидаете.

Отладчик позволяет вам следить за выполнением строка за строкой, проверять переменные, и вы увидите, что есть точка, в которой он перестает делать то, что вы ожидаете.
Отладчик-Википедия, свободная энциклопедия[^]
Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]

Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
Когда код не делает того, что ожидается, вы близки к ошибке.

Совет: возьмите лист бумаги и попробуйте сделать это вручную, ваша программа должна использовать ту же процедуру.


Member 12731696

Спасибо за совет !! Я бы определенно следовал тому, что вы упомянули здесь. Я сделал это домашнее задание, но обнаружил, что мой код слишком длинный, но он определенно дает мне необходимый результат. Мне просто интересно, можно ли ее решить с помощью другой логики .

Member 12731696

Кроме того, вы упомянули, что я могу отлаживать свой код самостоятельно, а не гадать . Я бы с удовольствием это сделал. Есть ли какой-нибудь ресурс, который объясняет, как отслеживать выполнение программы Шаг за шагом, чтобы, практикуясь, я мог эффективно отлаживать свой собственный код вместо того, чтобы проверять его на компиляторе и угадывать результат?

Patrice T

В моем ответе есть 2 ссылки.
Посмотрите в своей IDE, Visual Studio ... ?

Member 12731696

В настоящее время я не использую IDE, я работаю над JDK с помощью текстового редактора. Бумажная отладка может помочь на этом этапе. Позже я возьму IDE, возможно, Android Studio.

Member 12731696

Спасибо!!! Я проверю их .