通过递归计算指数增长



因此,我试图弄清楚如何通过递归计算股票的指数增长。股票的原始价值,用户给出的百分比和年数。

这是我认为会起作用的,但事实证明我是错误的。有什么想法吗?

public static void main(String[] args) {
    String cheese = JOptionPane.showInputDialog("Stock price.");
    double v = Double.parseDouble(cheese);
    String mayo = JOptionPane.showInputDialog("Percentage.");
    double p = Double.parseDouble(mayo);
    String ham = JOptionPane.showInputDialog("Years.");
    double n = Double.parseDouble(ham);
    System.out.println(stockGrowth(v, p, n));
}
static double stockGrowth(double v, double p, double n) {
    if (n > 0) {
        return stockGrowth(v * Math.pow(p, n)) + Math.pow(p, n - 1);
    } else {
        return v;
    }
}

欢呼。

如果p = 0.05(那是5%),那么一年后V已增长到V*1.05 = V*(1 p)。

这导致以下定义:

static double stockGrowth(double v, double p, double n) {
    if (n > 0) {
        return stockGrowth(v * (1+p), p, n - 1);
    } else {
        return v;
    }
}

最新更新