Problem Solving with C++ (9th Edition)
9th Edition
ISBN: 9780133591743
Author: Walter Savitch
Publisher: PEARSON
expand_more
expand_more
format_list_bulleted
Concept explainers
Textbook Question
Chapter 14, Problem 1PP
The formula for computing the number of ways of choosing r different things from a set of n things is the following:
C(n, r)=n!/(r! *(n−r)!)
The factorial function n! is defined by
n!=n*(n−1)*(n−2)*…*1
Discover a recursive version of this formula and write a recursive function that computes the value of the formula. Embed the function in a
Expert Solution & Answer
Want to see the full answer?
Check out a sample textbook solutionStudents have asked these similar questions
Please answer fast
Question 1
Answer following questions and write corresponding algorithms.
Algorithm: sqrt(n) [main]
1. return sqrtHelper(Arg 1, Arg 2)
Algorithm: sqrtHelper(n,m)
1. if m*m <= n
2. return m
3. else
4. return sqrtHelper(Arg 3, Arg 4)
5. endif
(a) Write an recursive algorithm called isPrime(n) that takes a positive integer and returns True if it is prime and False otherwise. You must call the function sqrt(n) as a sub- algorithm.
Trace your algorithm for isPrime(41). You only need to show the detail in the main algorithm and its helper function (if there is any).
Consider the recursive procedure which computes the nth Fibonacci number is the one below.
procedure Fl (n)
//a function which returns the nth Fibonacci number.//
if n < 2 then return(n)
else return (F2(2,n,1,1))
endif
end Fl
procedure F2(i,n,x,y)
if i
The Polish mathematician Wacław Sierpiński described the pattern in 1915, but it has appeared in Italian art since the 13th century. Though the Sierpinski triangle looks complex, it can be generated with a short recursive function. Your main task is to write a recursive function sierpinski() that plots a Sierpinski triangle of order n to standard drawing. Think recursively: sierpinski() should draw one filled equilateral triangle (pointed downwards) and then call itself recursively three times (with an appropriate stopping condition). It should draw 1 filled triangle for n = 1; 4 filled triangles for n = 2; and 13 filled triangles for n = 3; and so forth.
API specification. When writing your program, exercise modular design by organizing it into four functions, as specified in the following API:
public class Sierpinski {
// Height of an equilateral triangle whose sides are of the specified length. public static double height(double length)
// Draws a filled equilateral…
Chapter 14 Solutions
Problem Solving with C++ (9th Edition)
Ch. 14.1 - Prob. 1STECh. 14.1 - Prob. 2STECh. 14.1 - Prob. 3STECh. 14.1 - Prob. 4STECh. 14.1 - Prob. 5STECh. 14.1 - If your program produces an error message that...Ch. 14.1 - Write an iterative version of the function cheers...Ch. 14.1 - Write an iterative version of the function defined...Ch. 14.1 - Prob. 9STECh. 14.1 - Trace the recursive solution you made to Self-Test...
Ch. 14.1 - Trace the recursive solution you made to Self-Test...Ch. 14.2 - What is the output of the following program?...Ch. 14.2 - Prob. 13STECh. 14.2 - Redefine the function power so that it also works...Ch. 14.3 - Prob. 15STECh. 14.3 - Write an iterative version of the one-argument...Ch. 14 - Prob. 1PCh. 14 - Prob. 2PCh. 14 - Write a recursive version of the search function...Ch. 14 - Prob. 4PCh. 14 - Prob. 5PCh. 14 - The formula for computing the number of ways of...Ch. 14 - Write a recursive function that has an argument...Ch. 14 - Prob. 3PPCh. 14 - Prob. 4PPCh. 14 - Prob. 5PPCh. 14 - The game of Jump It consists of a board with n...Ch. 14 - Prob. 7PPCh. 14 - Prob. 8PP
Additional Engineering Textbook Solutions
Find more solutions based on key concepts
Open file P03-52. For the specified fault, predict the effect on the circuit. Then introduce the fault and veri...
Digital Fundamentals (11th Edition)
(IllegalTriangleException) Programming Exercise 11.1 defined the Triangle class with three sides. In a triangle...
Introduction to Java Programming and Data Structures, Comprehensive Version (11th Edition)
Consider the adage Never ask a question for which you do not want the answer. a. Is following that adage ethica...
Experiencing MIS
Describe a method that can be used to gather a piece of data such as the users age.
Web Development and Design Foundations with HTML5 (9th Edition) (What's New in Computer Science)
Write a loop equivalent to the for loop above without using .
C Programming Language
Write a function that dynamically allocates a block of memory and returns a char pointer to the block. The func...
Starting Out with C++ from Control Structures to Objects (8th Edition)
Knowledge Booster
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.Similar questions
- Write a recursive function for Euclid's algorithm to find the greatest common divisor (gcd) of two positive integers. gcd is the largest integer that divides evenly into both of them. For example, the gcd(102, 68) = 34. You may recall learning about the greatest common divisor when you learned to reduce fractions. For example, we can simplify 68/102 to 2/3 by dividing both numerator and denominator by 34, their gcd. Finding the gcd of huge numbers is an important problem that arises in many commercial applications. We can efficiently compute the gcd using the following property, which holds for positive integers p and q: If p > q, the gcd of p and q is the same as the gcd of q and p % q.arrow_forwardThe following function f uses recursion: def f(n): if n <= 1 return n else return f(n-1) + f(n-2) Let n be a valid input, i.e., a natural number. Which of the following functions returns the same result but without recursion? a) def f(n): a <- 0 b <- 1 if n = 0 return a elsif n = 1 return b else for i in 1..n c <- a + b a <- b b <- c return b b) def f(n): a <- 0 i <- n while i > 0 a <- a + i + (i-1) return a c) def f(n): arr[0] <- 0 arr[1] <- 1 if n <= 1 return arr[n] else for i in 2..n arr[i] <- arr[i-1] + arr[i-2] return arr[n] d) def f(n): arr[0..n] <- [0, ..., n] if n <= 1 return arr[n] else a <- 0 for i in 0..n a <- a + arr[i] return aarrow_forwardThe following function f uses recursion: def f(n): if n <= 1 return n else return f(n-1) + f(n-2) 5 Let n be a valid input, i.e., a natural number. Which of the following functions returns the same result but without recursion? a) def f(n): a <- 0 b <- 1 if n = 0 return a elsif n = 1 return b else for i in 1..n c <- a + b a <- b b <- c return b f(n): a <- 0 i <- n while i > 0 a <- a + i + (i-1) return a f(n): arr[0] <- 0 arr[1] <- 1 if n <= 1 return arr[n] else for i in 2..n arr[i] <- arr[i-1] + arr[i-2] return arr[n] f(n): arr[0..n] <- [0, ..., n] if n <= 1 return arr[n] else a <- 0 for i in 0..n a <- a + arr[i] return aarrow_forward
- Write a recursive function that, given a sequence of comparable values, returns the count of elements where the current element is less than the following ( next ) element in the given sequence. See the examples given below. def count_ordered ( seq ) : """ Input : A sequence of comparable elements Output : The number of elements that are less than the following element in the sequence Example : >>> count_ordered ( [ 1 , 2 , 3 , 4 , 5 , 6 ] ) 5 >>> count_ordered ( ( 1 , 12, 7.3 , -2,4 ) ) 2 >>> count_ordered ( 'Python' ) 2 >>> count_ordered ( [ 6 ] ) 0 >>> count_ordered ( [ ] ) 0 """ In the first example above , count_ordered ( [ 1,2,3,4,5,6 ] )the returned answer is 5 because for all the first 5 numbers the current number is less than the next number. In the second example above, count_ordered ( ( 1,12,7.3 , -2,4 ) )the…arrow_forwardThe first examples of recursion are the mathematical functions factorial and fibonacci. These functions are defined for non-negative integers using the following recursive formulas:factorial(0) = 1factorial(N) = N*factorial(N-1) for N > 0fibonacci(0) = 1fibonacci(1) = 1fibonacci(N) = fibonacci(N-1) + fibonacci(N-2) for N > 1Write recursive functions to compute factorial(N) and fibonacci(N) for a given non-negative integer N, and write a main() routine to test your functions.(In fact, factorial and fibonacci are really not very good examples of recursion, since the most natural way to compute them is to use simple for loops. Furthermore, fibonacci is a particularly bad example, since the natural recursive approach to computing this function is extremely inefficient.)arrow_forwardis it correct ? Write a recursive function that returns the nth number in a fibonacci sequence when n is passed to function. The fibonacci sequence is like 0,1,1,2,3,5,8,13...... Answer: #include <iostream> using namespace std; int getFibonacci(int n) { if (n == 0 || n == 1) return n; else return getFibonacci(n - 1) + getFibonacci(n - 2); } int main() { int n = 7; int result = getFibonacci(n); cout << result; }arrow_forward
- Write a recursive function to implement the recursive algorithm (multiplying two positive integers using repeated addition). Also, write a program to test your function.arrow_forward(Using the programming language C, answer the following question) Write recursive C functions to do the following: Example: int summ(int n) returns the summation of integers from 0 to n. Here is the code. int summ(int n) { if(n < 0) return -1; if(n == 0) return 0; return n + summ(n - 1);} 1) If n is less than 0, the expression int bunnyEars(int n) returns -1; otherwise, it returns the number of ears for n bunnies. int factorial(int n) returns -1 if n is less than 0, otherwise returns the factorial of n. If n is greater than or equal to 0, the expression int fib(int n) returns -1; otherwise, it returns fib of n - 1 + fib of n - 2. (This will run quite slowly if you test it with more than roughly 50 digits.). int posPow(int base, int exp) returns -1 if exp is less than 0, otherwise returns base raised to the power exp. Write a main() that tests all the other functions thoroughly.arrow_forwardInduction and RecursionA number sequence, t(n), where n ≥ 1, is given by the following recursive algorithm, value a = 1, b = 2 Function t(n):1. If n = 1 then1.1. t ← 3b+5else1.2. t ← -n + a∙t(n-1) a) Calculate the first 3 numbers in the number sequence ( t(1), t(2), ...t(3) ). b) For the fifth number t(5) , a call to the function with n=5, make a trace table for the algorithm, thatis calculate and write down a table with the contents of the different variables for every copy of therecursive algorithm, as the computer would go through the algorithm step by step.arrow_forward
arrow_back_ios
arrow_forward_ios
Recommended textbooks for you
- C++ Programming: From Problem Analysis to Program...Computer ScienceISBN:9781337102087Author:D. S. MalikPublisher:Cengage Learning
C++ Programming: From Problem Analysis to Program...
Computer Science
ISBN:9781337102087
Author:D. S. Malik
Publisher:Cengage Learning
Computational Software for Intelligent System Design; Author: Cadence Design Systems;https://www.youtube.com/watch?v=dLXZ6bM--j0;License: Standard Youtube License