MCQ Practice

What is the output of the following program? #include int main() { int coins[10]={1,3,4},lookup[100]; int i,j,tmp,num_coins = 3,sum=14; lookup[0]=0; for(i=1;i<=sum;i++) { int min_coins = i; for(j=0;j<num_coins;j++) { tmp=i-coins[j]; if(tmp<0) continue; if(lookup[tmp] < min_coins) min_coins=lookup[tmp]; } lookup[i] = min_coins + 1; } printf("%d",lookup[sum]); return 0; }

A

2

B

3

C

4

D

5

Correct Answer: C