Рубрики

Алгоритмы | Рекурсия | Вопрос 9

Прогнозировать вывод следующей программы

#include <stdio.h>

  

int fun(int n)

{

    if (n == 4)

       return n;

    else return 2*fun(n+1);

}

  

  

int main()

{

   printf("%d ", fun(2));

   return 0;

}

(А) 4
(Б) 8
(С) 16
(D) Ошибка выполнения

Ответ: (с)
Объяснение:

Fun(2) = 2 * Fun(3) and Fun(3) = 2 * Fun(4) ....(i)
Fun(4) = 4 ......(ii)
From equation (i) and (ii),
Fun(2) = 2 * 2 * Fun(4)
Fun(2) = 2 * 2 * 4
Fun(2) = 16. 

So, C is the correct answer

Тест на этот вопрос

Рекомендуемые посты:

Алгоритмы | Рекурсия | Вопрос 9

0.00 (0%) 0 votes