Kotlin Pattern Printing: Stars + Number Triangle (Beginner Friendly)
• kotlinbeginnerloopspattern-printingstarsnumbersconsolestrings
import kotlin.math.max
fun main() {
println("Kotlin Pattern Printing (Stars + Numbers)")
print("Enter a size (1..50): ")
val input = readLine()?.trim()
val n = input?.toIntOrNull()
if (n == null) {
println("Error: Please enter a valid whole number (e.g., 5).")
return
}
if (n !in 1..50) {
println("Error: Size must be between 1 and 50.")
return
}
printSolidSquare(n)
printHollowSquare(n)
printRightTriangleStars(n)
printPyramidStars(n)
printNumberTriangle(n)
/*
SAMPLE OUTPUT (n = 5)
Solid Square (Stars)
*****
*****
*****
*****
*****
Hollow Square (Stars)
*****
* *
* *
* *
*****
Right Triangle (Stars)
*
**
***
****
*****
Pyramid (Stars)
*
***
*****
*******
*********
Number Triangle
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
*/
}
fun repeatChar(ch: Char, times: Int): String {
val safeTimes = max(0, times)
return buildString {
repeat(safeTimes) { append(ch) }
}
}
fun repeatText(text: String, times: Int): String {
val safeTimes = max(0, times)
return buildString {
repeat(safeTimes) { append(text) }
}
}
fun printSolidSquare(n: Int) {
println()
println("Solid Square (Stars)")
val line = repeatChar('*', n)
repeat(n) { println(line) }
}
fun printHollowSquare(n: Int) {
println()
println("Hollow Square (Stars)")
if (n == 1) {
println("*")
return
}
val topBottom = repeatChar('*', n)
val middle = "*" + repeatChar(' ', n - 2) + "*"
println(topBottom)
repeat(n - 2) { println(middle) }
println(topBottom)
}
fun printRightTriangleStars(n: Int) {
println()
println("Right Triangle (Stars)")
for (i in 1..n) {
println(repeatChar('*', i))
}
}
fun printPyramidStars(n: Int) {
println()
println("Pyramid (Stars)")
for (i in 1..n) {
val spaces = n - i
val stars = 2 * i - 1
println(repeatChar(' ', spaces) + repeatChar('*', stars))
}
}
fun printNumberTriangle(n: Int) {
println()
println("Number Triangle")
for (i in 1..n) {
val row = buildString {
for (j in 1..i) {
if (j > 1) append(' ')
append(j)
}
}
println(row)
}
}

