//Link
https://www.hackerrank.com/challenges/sherlock-and-squares
1 from math import sqrt # 用什么,引什么,减少浪费和错误可能性 2 3 4 def main(): 5 t = int(raw_input()) 6 for _ in range(t): 7 squares = 0 8 a, b = map(int, raw_input().strip().split(‘ ‘)) 9 temp = int(sqrt(a)) # 设置temp的起始判断点 10 while temp ** 2 <= b: # 卡住上下边界 11 if temp ** 2 >= a: 12 squares += 1 13 temp += 1 14 15 print squares 16 17 main()
学习
抽象到本质后,开始反向思维
反向思维:
正向思维的话:
每个数都需要开方,要是注意到Input的要求,会发现这个量可是相当大的
反向:
用a开方上沿儿的边界值开始,平方后测试值在不在[a,b]范围内,因为平方的上升速度是相当快的
时间: 2024-10-06 17:36:14