首页 > 学院 > 开发设计 > 正文

SherlockandSquares

2019-11-14 17:12:08
字体:
来源:转载
供稿:网友

//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 += 113             temp += 114 15         PRint squares16 17 main()

学习

  抽象到本质后,开始反向思维

  反向思维:

    正向思维的话:

      每个数都需要开方,要是注意到Input的要求,会发现这个量可是相当大的

    反向:

      用a开方上沿儿的边界值开始,平方后测试值在不在[a,b]范围内,因为平方的上升速度是相当快的


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表