金融服务公司保证每月复合投资回报率为1%。您希望了解总投资额达到1,000,000美元(百万美元)加上回报需要多长时间。编写一个程序,允许用户输入每月连续投资(例如 - 每月500美元)或(每月1000美元)。该程序应调用递归方法,该方法返回并显示达到$ 1,000,000目标所需的总月数。
以下是我到目前为止,该程序没有显示任何内容。谢谢!
#include "stdafx.h"
#include <iostream>
#include <iomanip>
using namespace std;
// Function prototypes.
int financeRecursion(int, int, int);
int main()
{
int investment = 0;
int month = 0;
int totalMonths = 0;
cout << "Enter the amount of money you want to invest.\n\n";
cin >> investment;
totalMonths = financeRecursion(investment, month, investment); // Function call.
if (totalMonths > 0)
cout << totalMonths;
else
return 0;
} // End of main.
// Function definitions.
int financeRecursion(int money, int months, int money2)
{
if (money <= 0)
{return 0;} // Base case.
if (money2 <= 1000000)
{return financeRecursion(money,
months + 1,
money2 + money2 * 1.01);} // Recursive call.
} // End of function.
答案 0 :(得分:0)
让我们看看我们是否可以总结并解决这个问题:
我认为你的递归通话中存在计算错误:增加的投资是 money ,而不是 money2 。我认为这个表达应该是
money + money2 * 1.01
money&lt; = 0 是错误情况,不是基本情况。这应该在主程序中。递归的终止案例是当投资价值达到一个巨大的价格时。或者,你可以从100万美元起,除以1.01,直到达到或低于投资价值。