我在 SPOJ 上解决了这个问题
我们要计算 ( (P^N) + (Q^N) ),我们得到 P+Q 和 P*Q。
输入:第一行将包含一个整数 T (<=15) 表示测试用例的数量 三个整数 p+q、p*q 和 n 将为每个测试用例在单独的行中为每个测试用例输出相应的输出(p^n)+(q^n) 在单独的行中
一段时间后,我想出了这个复发
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));
}
我用给定的测试用例得到的答案是
2125764
4383653
-3
175099
28160
我推导出的公式是错误的吗?