Печать отраженного полого прямоугольного треугольника (*) в Kotlin
В настоящее время я беру уроки по принципам программирования с фокусом на языке Kotlin в своей школе из-за моего растущего интереса к программированию.
Я должен создать программу, которая принимает пользовательский ввод для целого числа. После сбора этой информации мне нужно напечатать два треугольника в виде звездочки (*) (у меня не было проблем с выполнением этих шагов).
Кроме того, есть потенциал для получения дополнительных баллов, над которыми я не работаю больше ради опыта, чем для дополнительных баллов, поскольку я выгляжу хорошо с точки зрения оценки. Мне нужно взять первый треугольник и отразить его, сохранив свойства. Пока я не могу понять, как бы сохранить треугольник полым и нанести на него третью сторону.
Мой ожидаемый результат:
*
**
* *
* *
*****
1
12
123
1234
12345
*
**
* *
* *
*****
Мой текущий результат:
*
**
* *
* *
*****
1
12
123
1234
12345
* *
* *
* or *
* *
***** *****
Кажется, я не могу понять этого, так как я так долго смотрел на проблему. Кажется, я не могу перевернуть мой треугольник на всю жизнь.
Мой код:
fun main() {
// Prompt user for the triangle's size
print( "How big do you want your triangles? " )
// Get the triangle's size from the user and store in a variable
var triangleSize = readLine()!!.toInt()
// Decrementor for internal spaces
var decrementor = triangleSize
// Incrementor for internal spaces
var incrementor = 2
// Case given a 0 is entered
if ( triangleSize == 0 ) {
// Case given 1 is entered
} else if ( triangleSize == 1 ) {
println( "*" )
println( "1" )
for ( i in 1..( triangleSize - 1 )) {
print( " " )
}
print( "*" )
// Case given number entered that is not 0 or 1
} else {
// Print the top point of the triangle
println( "*" )
// Print the sides of the triangle
for ( i in 0..( triangleSize - 3 )) {
print( "*" )
for ( i in 1..( triangleSize - decrementor )) {
print( " " )
}
println( "*" )
decrementor--
}
// Print the bottom of the triangle
for ( i in 1..triangleSize ) {
print( "*" )
}
println()
// Print the numbers triangle
for ( i in 1..triangleSize ) {
for ( j in 1..i ) {
print( "$j" )
}
println()
}
// Print the top of the inverse triangle
for ( i in 1..( triangleSize - 1 )) {
print( " " )
}
println( "*" )
for ( i in 1..( triangleSize - 2 )) {
for ( i in 1..( triangleSize - incrementor )) {
print( " " )
}
println( "*" )
incrementor++
}
// Print the bottom of the inverse triangle
for ( i in 1..triangleSize ) {
print( "*" )
}
}
}
Спасибо вам за помощь!