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

C++求平方根代码中temp变量的作用是什么?for循环里它有什么含义?

C++平方根计算代码temp变量问题解答

这段代码基于牛顿迭代法实现平方根计算,核心迭代公式为x_{n+1} = 0.5*(x_n + a/x_n),每一轮迭代的结果都会更接近真实的平方根值。

1. 使用temp变量的原因

temp变量的核心作用是存储迭代更新前的旧近似值,用于判断迭代是否收敛:

  • 每一轮迭代都会更新存储近似值的sqrt变量,如果没有提前把旧值保存下来,就无法对比新旧两次迭代的结果是否已经不再变化
  • 当新旧两次结果完全相等时,说明当前浮点数精度下已经无法得到更精确的结果,迭代可以提前终止,不需要跑满预设的a次循环,减少不必要的计算

2. for循环中temp的具体含义

每次进入for循环的第一行就会执行temp = sqrt,因此temp在当前循环周期里,代表的是上一轮迭代计算得到的平方根近似值:

  • 例如第k次循环中,temp存储的是第k-1次迭代输出的近似值,之后计算得到的新sqrt是第k次迭代的近似值
  • 后续的if (temp == sqrt)判断,就是对比相邻两次迭代的结果是否已经收敛到相同值,满足条件就直接退出程序

补充说明:这段代码里直接用==判断浮点数相等的写法存在风险,实际开发中通常会判断两个浮点数的差值小于某个极小阈值(比如1e-6)来判定收敛,避免浮点数精度误差导致的判断异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 19:36:03