w3resource

Generate Pascal's Triangle with For loops in R

R Programming: Control Structure Exercise-12 with Solution

Write a R program to generate the Pascal's triangle up to a given number of rows using nested for loops.

Sample Solution :

R Programming Code :

# Define a function to generate Pascal's triangle up to a given number of rows
generate_pascals_triangle <- function(num_rows) {
    # Initialize an empty list to store the triangle
    pascals_triangle <- list()
    
    # Iterate through rows
    for (row in 1:num_rows) {
        # Initialize a list to store the current row
        current_row <- c()
        
        # Iterate through columns in the current row
        for (col in 1:row) {
            # Calculate the value for the current cell using binomial coefficient formula
            value <- choose(row - 1, col - 1)
            
            # Append the value to the current row
            current_row <- c(current_row, value)
        }
        
        # Append the current row to the Pascal's triangle list
        pascals_triangle <- append(pascals_triangle, list(current_row))
    }
    
    return(pascals_triangle)
}

# Define a function to print Pascal's triangle
print_pascals_triangle <- function(pascals_triangle) {
    for (row in pascals_triangle) {
        cat(row, "\n")
    }
}

# Test the functions with an example input
num_rows <- 7
pascals_triangle <- generate_pascals_triangle(num_rows)
cat("Pascal's Triangle up to", as.character(num_rows), "rows:\n")
print_pascals_triangle(pascals_triangle)

Output:

Pascal's Triangle up to 7 rows:
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               

Explatnaion:

In the exercise above,

  • generate_pascals_triangle function:
    • This function generates Pascal's triangle up to a given number of rows.
    • It takes one parameter 'num_rows', which represents the number of rows in the triangle.
    • Inside the function, it initializes an empty list 'pascals_triangle' to store the triangle.
    • It iterates through each row from 1 to 'num_rows'.
    • For each row, it initializes an empty list 'current_row' to store the values of that row.
    • It iterates through each column in the current row using another loop.
    • For each cell in the current row, it calculates the value using the binomial coefficient formula (choose function) and appends it to 'current_row'.
    • After completing the row, it appends 'current_row' to 'pascals_triangle'.
    • Finally, it returns the generated Pascal's triangle.
  • print_pascals_triangle function:
    • This function is responsible for printing the Pascal's triangle neatly.
    • It takes one parameter 'pascals_triangle', which is the Pascal's triangle generated by "generate_pascals_triangle()" function.
    • It iterates through each row in 'pascals_triangle' and prints it.
  • Test the functions:
    • An example input num_rows is defined as 7.
    • The generate_pascals_triangle function is called with num_rows to generate the Pascal's triangle.

R Programming Code Editor:



Have another way to solve this solution? Contribute your code (and comments) through Disqus.

Previous: Find GCD with Recursion in R.
Next: Calculate Factorial with Recursion & Iteration in R.

Test your Programming skills with w3resource's quiz.

What is the difficulty level of this exercise?



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://www.w3resource.com/r-programming-exercises/control-structure/r-programming-control-structure-exercise-12.php