码迷,mamicode.com
首页 > 其他好文 > 详细

Sherlock and Squares

时间:2015-05-13 21:14:35      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:

//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]范围内,因为平方的上升速度是相当快的

Sherlock and Squares

标签:

原文地址:http://www.cnblogs.com/sangocare/p/4501385.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!