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

C++计算人口指数增长时如何在循环中持续更新变量值?

问题核心原因
  • 新增人口计算代码放在循环外部,仅使用初始人口值计算了一次固定增量,后续每轮都累加同一个固定值,得到的是线性增长结果,不符合复利式指数增长的要求。
  • 使用int类型做整数除法会自动丢弃小数部分,多轮计算后精度偏差会持续累积。
修复方法

将新增人口的计算逻辑移入for循环内部,每轮迭代都基于当前最新的人口数计算当轮新增人口。如果需要更高的计算精度,可将人口变量改为浮点类型。

可直接运行的修正代码
#include <iostream>
using namespace std;

int main() {
    double pop;
    int round;

    cout << "Population: ";
    cin >> pop;
    cout << "Round: ";
    cin >> round;
    
    for (int i = 1; i <= round; i++) {
        double new_people = pop * 0.05;
        pop += new_people;
        cout << "第" << i << "轮人口:" << pop << endl;
    }

    return 0;
}

如果需要保留int类型,仅调整计算位置即可:

#include <iostream>
using namespace std;

int main() {
    int pop;
    int round;

    cout << "Population: ";
    cin >> pop;
    cout << "Round: ";
    cin >> round;
    
    for (int i = 1; i <= round; i++) {
        int new_people = (pop * 5) / 100;
        pop += new_people;
        cout << "第" << i << "轮人口:" << pop << endl;
    }

    return 0;
}
结果验证

输入初始人口10000、轮次3时,int版本输出结果依次为10500、11025、11576,double版本输出为10500、11025、11576.25,符合预期的复利计算逻辑。

内容的提问来源于stack exchange,提问作者Abdullah Mert Özdemir

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 16:54:04