首页 > 解决方案 > 找到最近的有限制的平方数

问题描述

嘿,所以我想编写代码来查找小于或等于某个数字(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 之前停止循环?

标签: pythonsquare

解决方案


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

推荐阅读