如何在Google Sheets中复刻Python的while函数逻辑?
在Google Sheets中复刻Python循环逻辑的两种方案
你的Python代码核心是计算:给定初始金额pool,每次升级消耗的成本从100开始,每次增加50,最多能完成多少次升级。以下是两种实现方案:
方案1:纯内置函数公式(最简便)
假设输入金额放在单元格A1,直接使用以下公式即可得到升级次数:
=MAX(0, FLOOR( (SQRT(4*A1 + 225) - 15)/10 ))
原理说明
这是将循环逻辑转化为数学公式:每次升级的成本是等差数列(100, 150, 200...),前n次升级的总成本为25n(n+3)。通过解不等式25n(n+3) ≤ pool,推导出最大整数n的计算公式,避免了循环操作,计算效率极高。
方案2:Apps Script自定义函数(完全复刻while逻辑)
如果需要严格对应你的Python循环逻辑,可以用Google Sheets的脚本功能创建自定义函数:
- 打开Google Sheet,点击「扩展程序」→「Apps Script」
- 替换默认代码为以下内容:
function calculateUpgrades(pool) { let upgrades = 0; let cost = 100; const costChange = 50; let going = true; while (going) { if (cost > pool) { going = false; } else { upgrades += 1; pool -= cost; cost += costChange; } } return upgrades; }
- 保存项目后,回到Sheet中输入
=calculateUpgrades(A1)(A1为金额输入单元格)即可得到结果。
方案对比
- 公式方案:无需额外配置,计算快,适合固定逻辑的场景。
- 脚本方案:逻辑与你的Python代码完全一致,便于修改成本初始值、增量等参数,适合需要灵活调整的场景。
内容的提问来源于stack exchange,提问作者Pjo-Super-Fan
相关产品推荐
相关产品推荐

