You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用C++无需数学库计算投资未来累计价值的问题求解

代码问题修正及实现方案

你的现有代码存在三处需要调整的逻辑:

  • 月利率计算时机错误:你在读取annualInterestRate之前就完成了月利率计算,此时annualInterestRate是未初始化的随机值,计算结果完全错误,需要把月利率计算放在读取年利率之后。
  • 利率单位转换缺失:输入提示明确要求输入百分比形式的年利率,比如输入4.2代表4.2%,你没有做百分比转小数的处理,会导致利率计算偏差100倍。
  • 幂运算逻辑缺失:你当前的写法是直接乘法而非指数运算,由于总投资月数是正整数,不用pow()的前提下可以直接用循环累乘实现幂计算。

修正后的完整代码如下:

#include <iostream>
using namespace std;

int main()
{
    double investmentAmount;
    double annualInterestRate;
    double monthlyInterestRate;
    double numberOfYears;

    cout << "Enter investment amount: ";
    cin >> investmentAmount;
    cout << endl;

    cout << "Enter annual interest rate in percentage: ";
    cin >> annualInterestRate;
    cout << endl;

    cout << "Enter number of years: ";
    cin >> numberOfYears;
    cout << endl;

    // 百分比转小数后计算月利率
    monthlyInterestRate = annualInterestRate / 100.0 / 12.0;
    int totalMonths = static_cast<int>(numberOfYears * 12);
    double ratePower = 1.0;
    // 循环累乘实现幂运算:(1+月利率)的总月数次方
    for (int i = 0; i < totalMonths; i++) {
        ratePower *= (1.0 + monthlyInterestRate);
    }

    double accumulatedValue = investmentAmount * ratePower;

    cout << "Accumulated value is " << accumulatedValue <<endl;

    return 0;
}

核心逻辑说明:
总投资月数是明确的正整数,我们初始化累乘变量为1,循环总月数次每次乘以(1+月利率),最终得到的就是公式要求的(1 + monthlyInterestRate)的numberOfYears × 12次方结果,完全满足不引入数学库的要求。

内容的提问来源于stack exchange,提问作者James Harden

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 15:45:02