w3resource

Kotlin Program: Print Pascal's Triangle for a given number of rows

Kotlin Control Flow: Exercise-5 with Solution

Write a Kotlin program to print the Pascal's triangle of a given number of rows.

Sample Solution:

Kotlin Code:

fun printPascalTriangle(rows: Int) {
    require(rows > 0) { "Number of rows must be greater than 0." }

    var prevRow = mutableListOf(1)
    println(prevRow.joinToString(" "))

    for (currentRow in 1 until rows) {
        val nextRow = mutableListOf()

        nextRow.add(1)
        for (i in 1 until currentRow) {
            val sum = prevRow[i - 1] + prevRow[i]
            nextRow.add(sum)
        }
        nextRow.add(1)

        println(nextRow.joinToString(" "))

        prevRow = nextRow
    }
}

fun main() {
    val numRows = 7
    printPascalTriangle(numRows)
} 

Sample Output:

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1

Explanation:

In the above exercise,

  • The "printPascalTriangle()" function takes the rows parameter, which specifies the number of rows to be printed in Pascal's triangle. It first checks if the number of rows is greater than 0 using the require function.
  • The program then initializes prevRow as a mutable list containing the first row with a single element, which is always 1. This row is printed using the "println()" and "joinToString()" functions to concatenate the row elements with spaces.
  • The program then enters a loop to calculate and print the subsequent rows. It initializes an empty mutable list nextRow. It adds 1 as the first element of the row, and then calculates the remaining elements by summing the corresponding elements from the previous row (prevRow). The calculated elements are added to nextRow.
  • Finally, the nextRow is printed, and prevRow is updated to nextRow for the next iteration. The loop continues until the desired number of rows is printed.
  • In the "main()" function, a sample value of numRows (7) is provided, and printPascalTriangle is called with this value. The program then prints Pascal's triangle with7 rows.

Kotlin Editor:


Previous: Print the first 10 natural numbers.
Next: Fibonacci series up to a given number.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://w3resource.com/kotlin-exercises/control-flow/kotlin-control-flow-exercise-5.php