我目前正在编写一个程序,其中必须使用for循环递归地计算数字。但不幸的是,由于当前的实现无法计算出正确的答案,我不知道如何正确实现此功能。
public class Calc {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double k = sc.nextDouble();
double e = sc.nextDouble();
double q = sc.nextDouble();
int n = sc.nextInt();
for (int i = 0; i < n; i++) {
k = (k + (i * e)) * (1 + q); //The problem I have is that I don't know how to access the previous element of the for-loop
}
}
}
答案 0 :(得分:0)
代替您的for循环:
for (int i = 0; i < n; i++) {
k = (k + (i * e)) * (1 + q);
}
您确实可以使用递归。
只需创建一个名为calculateK()
的方法,然后递归调用即可,就像这样:
public static double calculateK(double k, int i) {
if (i == n) {
return k;
}
else
{
return calculateK((k + (i * e)) * (1 + q), i + 1);
}
}