题目
一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
程序分析
因为168对于指数爆炸来说实在太小了,所以可以直接省略数学分析,用最朴素的方法来获取上限:
1
2
3
4
|
n = 0
while (n + 1 ) * * 2 - n * n< = 168 :
n + = 1
print (n + 1 )
|
补充:用Python实现"有效的完全平方数"的一种方法
给一个正整数num,写一个函数判断它是否是一个完全的平方数,是则返回True,不是返回False
注意:不要使用任何内嵌的函数,如sqrt
Example 1
1
2
3
4
5
|
Input : 16
Output: true
Example 2 :
Input : 14
Output: false
|
1:二分法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
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
|
以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。如有错误或未考虑完全的地方,望不吝赐教。
原文链接:https://blog.csdn.net/chexiansheng/article/details/89371607