c++ - 如何增加我的“for循环”呈现的结果?
问题描述
for (int j=1; j<=120; j++){
Pop=10180000; //Pop = Population //
Increase=Pop*0.0118;
Pop=Increase+Pop;
cout<< Increase <<endl;
cout<< Pop <<endl;
}
我真的是新来的,如果我犯了错误,请见谅。我想找出 120 个月的人口数量(1018 万),每月增长 1.18%。
我设法找到了第一个月,但我的 for 循环在接下来的 120 行中每行重复相同的结果。
解决方案
您的问题是您在循环的每次迭代中都设置了总体的初始值。您应该在循环开始之前执行一次。
您还可以简化计算,因为只需乘以 1.18% 即可实现1.0118
。这给了你类似的东西:
int Pop = 10180000;
for (int i = 1; i <= 120; i++)
Pop = Pop * 1.0118;
cout << Pop << endl;
当然,如果您正在编写真正的代码,您可能需要分解功能以便可以轻松地重用它:
int increaseValue(
int value,
double ratePerPeriod,
unsigned int periodCount
) {
for (unsigned int i = 0; i < periodCount; i++)
value *= (ratePerPeriod / 100.0 + 1.0);
return value;
}
:
cout << increaseValue(10180000, 1.18, 120) << endl;
推荐阅读
- php - 我们如何使用数组形式的函数作为参数发送数据并在codeigniter的sql查询中执行OR运算
- amazon-cloudformation - API:sqs:CreateQueue 总是拒绝访问
- javascript - 渲染方法中未调用reactjs方法
- c# - 当我将 StackPanels 放入 ComboBoxItems 时,WPF 设计器不断崩溃
- javascript - 试图复制回调地狱
- python - Pandas:比较数据框以获取更多和更改的行
- asp.net-web-api - 将网页传输到 Web 服务
- three.js - 如何根据与相机的距离在 2 个顶点位置之间混合/混合?
- signal-processing - 给定幅度和采样率列表的 FFT 输入表示
- exchangewebservices - 用于创建新联系人的 EWS 脚本,然后将其添加到公用文件夹 > 父文件夹 > 包含联系人项目的文件夹