Python3 完全平方数案例

题目

一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

程序分析

因为168对于指数爆炸来说实在太小了,所以可以直接省略数学分析,用最朴素的方法来获取上限:

n=0
while (n+1)**2-n*n<=168:
 n+=1
print(n+1)

补充:用Python实现"有效的完全平方数"的一种方法

给一个正整数num,写一个函数判断它是否是一个完全的平方数,是则返回True,不是返回False

注意:不要使用任何内嵌的函数,如sqrt

Example 1

Input: 16
Output: true
Example 2:
Input: 14
Output: false

1:二分法

def isPerfectSquare(self, num):
  """
  :type num: int
  :rtype: bool
  """
  low = 1 
  high = num
  while low < high:
   mid = (low + high) // 2
   if mid * mid == num:
    return True
   elif mid * mid < num:
    low = mid + 1
   else:
    high = mid - 1
  return low * low == num

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

你可能感兴趣的:(Python3 完全平方数案例)