首日1美分每日收益翻倍30天计算JS代码第1天显示2美分如何修复
问题定位
- 代码执行顺序错误:循环进入后优先执行了
money = money * 2的翻倍逻辑,再输出当日收益,初始值1美分在第一天就被乘2变成2才输出,导致首日结果不符合预期。 - 额外问题:
total变量未提前声明,会自动成为全局变量,存在变量污染风险。
修正后代码
<script> var money = 1; var total = 0; for (var i = 1; i < 31; i++) { document.writeln("<p>After day " + i + " you will have " + money + " cents.</p>"); total = money / 100; // 翻倍逻辑放在输出之后,为次日收益做准备 money = money * 2; } document.writeln("<p>In thirty days you will have earned $" + total + ".</p>"); </script>
修正说明
- 调整了翻倍逻辑的位置,先输出当日的收益值,再执行翻倍计算作为下一日的初始金额,完全匹配「首日1美分,每日收益翻倍」的规则
- 提前声明了
total变量,避免全局变量污染 - 最终第30天的总资产为536870912美分,换算为美元是5368709.12,符合复利计算结果
内容的提问来源于stack exchange,提问作者user17236739
相关产品推荐
相关产品推荐

