What will be the value stored in max_value when the following code is executed?
#include<stdio.h>
#include<limits.h>
int max_of_two(int a, int b)
{
if(a > b)
return a;
return b;
}
int rod_cut(int *prices, int len)
{
int max_price = INT_MIN; // INT_MIN is the min value an integer can take
int i;
if(len <= 0 )
return 0;
for(i = 0; i < len; i++)
// subtract 1 because index starts from 0
max_price = max_of_two(prices[i] + rod_cut(prices,len - i - 1), max_price);
return max_price;
}
int main()
{
int prices[]={2, 5, 6, 9, 9, 17, 17, 18, 20, 22},len_of_rod = 3;
int ans = rod_cut(prices, len_of_rod);
printf("%d",ans);
return 0;
}
#include<stdio.h>
#include<limits.h>
int max_of_two(int a, int b)
{
if(a > b)
return a;
return b;
}
int rod_cut(int *prices, int len)
{
int max_price = INT_MIN; // INT_MIN is the min value an integer can take
int i;
if(len <= 0 )
return 0;
for(i = 0; i < len; i++)
// subtract 1 because index starts from 0
max_price = max_of_two(prices[i] + rod_cut(prices,len - i - 1), max_price);
return max_price;
}
int main()
{
int prices[]={2, 5, 6, 9, 9, 17, 17, 18, 20, 22},len_of_rod = 3;
int ans = rod_cut(prices, len_of_rod);
printf("%d",ans);
return 0;
}A. 5
B. 6
C. 7
D. 8
Answer: Option C

Join The Discussion