再帰的メソッドを使用して、同じ金額(ユーザーが入力したもの)が投資された場合に合計1000万ドルの目標に達するまでの月数を計算するプログラムを作成しようとしています。毎月2%の利子が追加されています。問題は、メソッドがカウンタをあまりに早く返すことで、私の「月」の出力が不正確になることです。私の推測では、私の最後のelseステートメントが間違っているか、私のカウンターが誤って再帰的メソッドの論理エラー
置かれ相続人はあなたが逃した私のコード
import java.util.Scanner;
public class MoneyMakerRecursion {
public static int counter = 0;
public static void main(String[] args) {
//Variables declared
Scanner userInput = new Scanner(System.in);
double investment;
//User is prompted for input
System.out.println("Enter your monthly investment: ");
investment = userInput.nextInt();
//Method is called
Sum(investment);
//Results from recursive method output
System.out.println("It should take " + counter + " month(s) to reach your goal of $10,000,000");
}
//recursive Method
public static double Sum(double investment) {
counter++;
double total = (investment * 0.02) + investment;
if(total >= 10000000) {return counter;}
else {return Sum(investment+total);}
}
}
なりません、問題があることです合計に合計を加えて、各反復で投資を倍増させています。 –