这里我们有一个用于序列元素的公式:F [i] = 2 * F [i-1]-cos(i),F [1] = 1。 在任务中,我应该使用递归计算序列中N个元素的总和。我可以返回n-idexed元素:
public double recursion(int n) {
if (n == 1)
return 1;
else
return (2 * recursion(n - 1) - Math.cos(n));
}
但是我不知道如何计算这些元素的总和。我应该如何组织这个过程?
答案 0 :(得分:1)
您首先应该编写一个称为f
的方法来计算函数F [n],您已在此处完成了该方法。您应该将recursion
方法重命名为f
。
private static double f(int n) {
if (n == 1)
return 1;
else
return (2 * f(n - 1) - Math.cos(n));
}
然后,编写另一种称为fsum
的递归方法,该方法计算f(n)+ f(n-1)+ ... + f(1)。
当然,基本情况为1。当n
为1时,fsum
也应返回1,因为f(1)为1。
否则,返回f(n)+其余f的总和。其余f的总和是多少? fsum(n-1)
!
public static double fsum(int n) {
if (n == 1) return 1;
return f(n) + fsum(n - 1);
}