# GATE | Gate IT 2007 | Question 27

• Last Updated : 28 Jun, 2021

The function f is defined as follows:

Attention reader! Don’t stop learning now.  Practice GATE exam well before the actual exam with the subject-wise and overall quizzes available in GATE Test Series Course.

Learn all GATE CS concepts with Free Live Classes on our youtube channel.

 `int` `f (``int` `n) {``    ``if` `(n <= 1) ``return` `1;``    ``else` `if` `(n % 2  ==  0) ``return` `f(n/2);``    ``else` `return` `f(3n - 1);``}`

Assuming that arbitrarily large integers can be passed as a parameter to the function, consider the following statements.
1. The function f terminates for finitely many different values of n ≥ 1.

ii. The function f terminates for infinitely many different values of n ≥ 1.

iii. The function f does not terminate for finitely many different values of n ≥ 1.

iv. The function f does not terminate for infinitely many different values of n ≥ 1.

Which one of the following options is true of the above?
(A) (i) and (iii)
(B) (i) and (iv)
(C) (ii) and (iii)
(D) (ii) and (iv)

Explanation: The function terminates for all values having a factor of 2 {(2.x)2==0}
So, (i) is false and (ii) is TRUE.
Let n = 3, it will terminate in 2nd iteration.
Let n=5, it will go like 5 – 14 – 7 – 20 – 10 – 5 – and now it will repeat.
And any number with a factor of 5 and 2, there are infinite recursions possible.
So, (iv) is TRUE and (iii) is false.

Quiz of this Question

My Personal Notes arrow_drop_up