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