Python中没有sqrt函数的检查数字是否为完美平方的程​​序

假设我们有一个数 n,我们必须检查 n 是否是一个完全平方数。对于某个整数 a,完美平方数 k 可以表示为 k = a * a。我们必须在不使用内置平方根函数的情况下解决这个问题。

因此,如果输入类似于 n = 121,那么输出将为 True,因为 121 = 11*11。

示例

让我们看下面的实现来更好地理解

def solve(n):

   if n == 0 or n == 1:

      return True

   start = 2

   stop = n // 2

   while start <= stop:

      temp = range(start, stop + 1)

   k = temp[len(temp) // 2]

   k_squared = k * k 

   if k_squared == n:

      return True

   if k_squared > n:

      start = temp[0]

      stop = k - 1

   else:

      start = k + 1

      stop = temp[-1]

   return False

n = 121

print(solve(n))

输入

121
输出结果
True

以上是 Python中没有sqrt函数的检查数字是否为完美平方的程​​序 的全部内容, 来源链接: utcz.com/z/331634.html

回到顶部