У меня есть проблема, с которой, я надеюсь, вы сможете помочь.
Программа на 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 для каждой строки.
Вопросы:
- Как я могу заставить разные типы сердец выполнять свою работу в каждой строке?