Рубрики

UGC-NET | UGC NET CS 2016 Июль — II | Вопрос 15

Какое значение возвращает функция f, указанная ниже, когда n = 100?
int f (int n)
{если (n = = 0), то вернуть n;
еще
вернуть n + f (n-2);
}
(А) 2550
(В) 2556
(С) 5220
(D) 5520

Ответ: (А)
Пояснение: у нас есть функция:

int f (int n)
{ if (n = = 0) then return n;
else
return n + f(n-2);
}

мы должны найти выход для n = 100
т.е.
int f (100)
{если (n = = 0), то вернуть n; // неудача //
еще
вернуть 100 + f (98)
{если (n = = 0), то вернуть n; // неудача //
еще
возврат 98 + f (96)
{если (n = = 0), то вернуть n; // неудача //
еще
return 96 + f (94) ………………… ..f (0); // Это будет серия AP 100, 98, 96, ……… 0 //;
};
};
}

Сумма серий, когда мы знаем первый и последний термин, а не термины:
S n = n / 2 * (первый член + последний член)
т.е. 51/2 * (100 + 0).
= 51 * 50
= 2550
Таким образом, вариант (А) является правильным.
Тест на этот вопрос

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

UGC-NET | UGC NET CS 2016 Июль — II | Вопрос 15

0.00 (0%) 0 votes