//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]范圍內,因為平方的上升速度是相當快的
|
新聞熱點
疑難解答