python - 找到最近的有限制的平方数
问题描述
嘿,所以我想编写代码来查找小于或等于某个数字(x)的最近平方数。我尝试了以下方法:
m = 0
base = 0
while m <= x:
if m > x:
break
m = base**2
base += 1
print(m)
然而,这给出了数字 x 之后最接近的正方形,尽管由于 am > x 已经被分配给 m ,所以放置了中断。我如何在 m > x 之前停止循环?
解决方案
if m > x
是多余的。只有在为 True时才会输入循环体,如果m <= x
为 True,则m > x
永远不会输入,因此break
永远不会运行。
不过,要回答您的问题,在不了解更多数学知识的情况下,我只需引入第二个变量prev_m
,然后使用它:
m = 0
prev_m = m
base = 0
while m <= x:
prev_m = m
m = base**2
base += 1
print(prev_m) # Then use prev_m instead
推荐阅读
- sql - Impala:计数(不同)具有多个 where 语句标准?
- r - 无法在 Ubuntu 18.04 linux 上安装最新的 R 版本
- windows - 共享代码文件夹的Git设置问题,保持工作流速度(Win10)
- react-native - 在 react-native 中刷新数据
- python - 导入的 .CSV 的第一列不能被其标签引用
- javascript - .on('click', function(){}) 仅适用于第一次点击
- java - 如何将数据放入作者内部的工作范围地图?
- ms-access - 在与请求的名称或序号相对应的集合中找不到项目
- c# - C# 在 08:20:00 和 08:29:59 之间生成 5 个随机时间
- c++ - C++ 在不使用 pow 或循环的情况下计算数字的幂