Loading...
nvndmtrv avatar nvndmtrv 0 Точки

Square of Stars

Здравейте,

някой може ли да ми каже дали съм на правилен път относно задача квадрат от звездички ? Смятам,че нещо не правя както трябва..Моля за някакво решение. Благодаря предварително!

import java.util.Scanner;

public class SquareofStars {
    public static void main(String[] args) {
        Scanner console = new Scanner(System.in);
        for (int n = 0 ; n<=3 ; n++);
        System.out.print ("*" + "*" + "*");
        System.out.println(" ");
        for (int n= 0; n<=2 ; n++);
        System.out.println ( "* " + "*");
        for (int n=0;n<=3;n++);
        System.out.print("*" + "*" + "*");

    }
}

 

Тагове:
0
Programming Basics
TodorovP avatar TodorovP 177 Точки

По отношение на редовете (n на брой) се прави for цикъл.

В него:

Когато редът е първият или n-тият с for цикъл от 1 до n по реда се изписват знаци *.

За останалите (вътрешните) n - 2 реда в първа колона се извежда символът *, в следващите n - 2 колони с for цикъл от 2 до n - празни позиции, а в последната n-та колона се отпечатва символът *.

0
TonyTroev avatar TonyTroev 26 Точки

Ето едно решение от мен:

import java.util.Scanner;

public class SquareOfStars {
    private static Integer n;
    public static void main(String[] args) {
        Scanner reader = new Scanner(System.in);

        n = Integer.parseInt(reader.nextLine());

        printBorder();
        for (int i = 0; i < n - 2; i++) {
            printBody();
        }
        printBorder();
    }

    private static void printBorder(){
        for (int i = 0; i < n; i++) {
            System.out.print("*");
        }

        System.out.println();
    }

    private static void printBody(){
        System.out.print("*");

        for (int i = 0; i < n - 2; i++) {
            System.out.print(" ");
        }

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

 

0
VeselinDinev avatar VeselinDinev 37 Точки

Здравей !

Смятам, че това решение е сравнително лесно, подробно и ясно. Опитах се да дам някакви коментари, дано е разбираемо :) 

import java.util.Scanner;

public class New {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n=Integer.parseInt(scanner.nextLine());
        String firstandlastrow = "";
        for (int i = 1; i<=n; i++)
        {
            firstandlastrow = firstandlastrow + "*";  // varti cikala, dokato zvezdichkite stanat, kolkoto vavedenoto chislo
        }
        System.out.println(firstandlastrow); //izprintirai opredeleniq broi zvezdichki
        for (int i = 0; i <n-2 ; i++)
        {
          String middle = "*";
            for (int j = 0; j < n-2; j++) //pechatai zvezdichki nadolu
            {
            middle = middle + " "; //pechatai zvezdichka + prazno mqsto
            }
            middle=middle + "*"; //sled tova dobavqi zvezdichkata ot dqsnata strana
            System.out.println(middle); //izpechatai gornite zvezdichki
        }
        System.out.println(firstandlastrow); // razpechatai gorniq red, koito e sashtiq, kato dolniq
    }
}
0
17/04/2018 01:28:57
VeselinDinev avatar VeselinDinev 37 Точки

В твоя случаи, по никакъв начин не използваш скенера, който задаваш още в първия си ред (Scanner console = new Scanner(System.in) ) Задай след това една променлива, която да използва числото, което ще се въведе. Ето примерно изписване:

Scanner scanner = new Scanner(System.in);  // казваш на конзолата, че трябва да чака да се въведе някаква информация
        int n=Integer.parseInt(scanner.nextLine());  // казваш на конзолата - на числото n, присвои въведената от скенера стойност 

0
Kostadin.iliev avatar Kostadin.iliev 2 Точки

Ето как съм я решил аз. Надявам се да ти помогне да разбереш логиката. Мисля че ако я пуснеш с Debug ще ти е по-лесно.

import java.util.Scanner;
public class Square {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int num = input.nextInt();
        String a = "*";
        String b = " ";
        if (num < 2) {
            System.out.println("bigger num");
        } else if (num > 100) {
            System.out.println("smaller num");
        } else {
            for (int i = 1; i <= num; i++) {
                System.out.print(a);
            }
            System.out.print('\n');


            for (int left = 1; left <= (num - 2); left++) {
                System.out.print(a);

                for (int down = 1; down <= (num - 2); down++) {
                    System.out.print(b);
                }
                System.out.println(a);
            }

            for (int i = 1; i <= num; i++) {
                System.out.print(a);
            }
            System.out.print('\n');
        }
    }
}

0
19/04/2018 10:22:26
StefanStoevStoev avatar StefanStoevStoev 0 Точки

Браво, много елегантно решение. Без допълнителни методи.

Единственото излишно е:

System.out.print('\n');  може да се напише със същият успех   System.out.println();

и

left <= (num - 2)  може да се напише   left <= num - 2

Теорията казва, че ";" завършва командата.

 

0
06/02/2020 16:43:59
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.