Имам проблем, за който се надявам да помогнете.
Програмата на Java трябва да отпечата ASCII сърца въз основа на въведеното N, дадено от потребител.
Информация:
- Знаци за печат: ♡ ♥
- Отпечатването на горната и долната част на сърцето може да се направи отделно
- Решението трябва да се основава на for-цикли
- N определя горната част на сърцето: 1. Наклонените външни страни в горната част имат N сърца в тях. 2. Плоските части в горната част имат N сърца в тях. em> 3. Разликата между двете плоски части е широка N сърца.
Примери:
Текущият ми код:
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Enter the number of hearts you want to print");
int userInput = scan.nextInt();
printTop(userInput);
}
public static void printTop(int userInput) {
String row = "";
int width = 2 * (userInput - 1) + 3 * userInput;
for (int height = 0; height < userInput; height++) {
for (int i = 0; i < userInput - 1; i++) {
row += "♡";
}
for (int i = 0; i < userInput; i++) {
row += "♥";
}
for (int i = 0; i < userInput; i++) {
row += "♡";
}
for (int i = 0; i < userInput; i++) {
row += "♥";
}
for (int i = 0; i < userInput - 1; i++) {
row += "♡";
}
row += "\n";
}
System.out.println(row);
}
Мисли:
- Първият ред на сърцето се базира на:
2 * (userInput - 1) + 3 * userInput
- Цветните сърца трябва да се увеличат с 2 за всеки ред
- Централните сърца трябва да бъдат намалени с 2 за всеки ред
- Прозрачните сърца отстрани трябва да бъдат намалени с 1 за всеки ред
Въпроси:
- Как мога да накарам различните видове сърца да вършат работата си на всеки ред?