Python程序:判断一个数是否为完全平方数(不使用sqrt函数)
假设我们有一个数字n,我们需要检查n是否为完全平方数。一个完全平方数k可以表示为k = a * a,其中a为整数。我们需要在不使用内置平方根函数的情况下解决这个问题。
因此,如果输入类似于n = 121,则输出将为True,因为121 = 11*11。
为了解决这个问题,我们将遵循以下步骤:
如果n等于0或n等于1,则
返回True
开始 := 2
结束 := n / 2 的向下取整
当开始 <= 结束时,执行以下操作:
临时 := 从开始到结束的所有数字的列表
k := 临时列表的中间元素
k_平方 := k * k
如果k_平方等于n,则
返回True
如果k_平方 > n,则
开始 := 临时[0]
结束 := k - 1
否则,
开始 := k + 1
结束 := 临时列表的最后一个元素
返回False
示例
让我们看看下面的实现以更好地理解
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
Learn Python in-depth with real-world projects through our Python certification course. Enroll and become a certified expert to boost your career.
输出
True
广告