int f1(int n){ if(n == 0 || n == 1) return n; else return (2*f1(n-1) + 3*f1(n-2));}int f2(int n){ int i; int X[N], Y[N], Z[N] ; X[0] = Y[0] = Z[0] = 0; X[1] = 1; Y[1] = 2; Z[1] = 3; for(i = 2; i <= n; i++) { X[i] = Y[i-1] + Z[i-2]; Y[i] = 2*X[i]; Z[i] = 3*X[i]; } return X[n] ;} f1(8) and f2(8) return the values
(A) 1661 and 1640
(B) 59 and 59 (C) 1640 and 1640 (D) 1640 and 1661
Both functions perform same operation, so output is same, means either (B) or (C) is correct.
f1(2) = 2*f1(1) + 3*f1(0) = 2 f1(3) = 2*f1(2) + 3*f1(1) = 2*2 + 3*1 = 7 f1(4) = 2*f1(3) + 3*f1(2) = 2*7 + 3*2 = 20 f1(5) = 2*f1(4) + 3*f1(3) = 2*20 + 3*7 = 40 + 21 = 61
We can skip after this as the only remaining choice is (C)
f1(6) = 2*f1(5) + 3*f1(4) = 2*61 + 3*20 = 122 + 60 = 182 f1(7) = 2*f1(6) + 3*f1(5) = 2*182 + 3*61 = 364 + 183 = 547 f1(8) = 2*f1(7) + 3*f1(6) = 2*547 + 3*182 = 1094 + 546 = 1640 |
Saturday, 25 February 2017
GATE EXAM PREPARATION IN "C" - consider the following C functions:
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment