Я решала this проблемы на SPOJвычисления р^п + д^п от р + д и рд
Мы должны вычислить ((P^N) + (Q^N)), мы данные P + Q и P * Q.
Входной сигнал: Первая строка будет содержать целое число T (< = 15), обозначающее количество тестовых случаев три целые числа р + д, р * д и п будут даны для каждого теста в отдельной строке для каждого теста случай выход соответствующий выход (р^п) + (д^п) в отдельной строке
Через некоторое время я пришел с этим рецидивом
p^n + q^n = (p^n-1 + q^n-1)(p+q) - pq(p^n-2 + q^n-2)
and in my code i have
a = p + q and b = p.q
Вот мое решение
public Long computeExponential(int n)
{
//base cases
if(n == 0)
{
return 1L;
}
else if(n == 1)
{
return new Long(a);
}
else
{
return (a * computeExponential(n-1) - b * computeExponential(n-2));
}
Ответы, которые я получаю с данными testcases является
2125764
4383653
-3
175099
28160
формула, что я производный не так?
Спасибо за помощь. Это была ошибка, которую я совершил. Спасибо за ваше время и совет. – nikhil