Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中用于计算银行货币账户的递归代码_Java - Fatal编程技术网

java中用于计算银行货币账户的递归代码

java中用于计算银行货币账户的递归代码,java,Java,我想用java实现一个递归代码,用于在投资几年后计算银行的货币账户。。。这是我的密码 public static double computeCapital(double capital, int years, double interestRate) { if (years == 0) { return capital; } else { double newcapital = capital * Math.pow(interestRate,year);

我想用java实现一个递归代码,用于在投资几年后计算银行的货币账户。。。这是我的密码

public static double computeCapital(double capital, int years, double interestRate) {
   if (years == 0) {
      return capital;
   } else {
      double newcapital = capital * Math.pow(interestRate,year);
      return computeCapital(newcapital , years+1 , interestRate);
   }
}
我的代码正确吗?
谢谢

您的停止条件为年==0

您的递归从年开始,并计算年-1的资本

如果你想知道你在3年内的资本,你将在2年内计算资本并乘以利率。
2年资本为1年资本乘以利率


查看。

不,您的代码将无法通过编译,即使您将
年更改为
,您也可能会得到StackOverflower错误。请使用它不是一年吗?否则递归将花费很长时间..如何纠正它?Burkhard为什么是年-1?这不是应该计算,直到达到所需的年份,然后停止!
   public static double computeCapital(double capital, int years, double interestRate) {
    if (years == 0) {    
    return capital; 
    }
    else{
    return computeCapital(capital, years-1, interestRate)*(1+interestRate);
    }
}