In algorithms please help me answer this question I will give you a good rating :) implement the three versions of the addupto20() function: iterative, recursive, and divide-and-conquer approach test these functions with a few inputs from your main()
In
implement the three versions of the addupto20() function: iterative, recursive, and divide-and-conquer approach
test these functions with a few inputs from your main()
Iterative solution
* check if there exsits two numbers from
e.g., if data=[2,5,3,15], the function returns true, as data [0] +data [3]==20
e.g., if data=[3,4,0,8], the function return false
precondition: vector data has been initialized
postcondition: if there are two numbers from list add up to 20, return true;
otherwise, return false */
bool AddupTo20 (const vector‹int> & data){
}
Come up with a recursive solution to the problem, following the hints given below:
* check if there exists two numbers from vector data[first...right] add up to 20
e.g., if data=[2,5,3,15], first=0, last=3, the function returns true,
as data [0] +data [3]==20
e.g., if data=[2,5,3,15], first=2, last=3, the function returns fales
(there are no pairs from data[2..3] that add up to 20
precondition: vector data has been initialized
first, last are indicating the starting and ending indices
postcondition: if there are two numbers from data[first.
..last] add up to 20,
return true; otherwise, return false */
bool AddupTo20 (const vector‹int› & data, int first, int last)
{
// BASE CASE: if data[first... last]'s length is 1
// return false
//General case
// check if adding a[first] with a number from data[first+1...last]
// yields a sum of 20
// check if any pairs from data[first+1 ... last] add up to 20
}
Step by step
Solved in 3 steps with 2 images