筆者有用C++來解高中生解題系統上的 高中生程式解題系統:完全平方和
(題目連結:https://zerojudge.tw/ShowProblem?problemid=a059) 一題。
本篇換用 Python 程式語言來解,演算法如下:
找出在範圍 [a, b]內大於或等於 a 的完全平方數(curSquare),與 a 的平方根(minRoot)。
當 curSquare 小於或等於 b 時
{
將 curSquare 加到 squareSum 裡
minRoot += 1
curSquare = minRoot * minRoot
}
Python程式碼:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | from math import sqrt n = int(input()) for i in range(n): a = int(input()) b = int(input()) # Current Square Number curSquare = 0 # Minimal square root minRoot = int(sqrt(a)) if minRoot * minRoot == a: curSquare = a else: minRoot = minRoot + 1 curSquare = minRoot * minRoot squareSum = 0 while curSquare <= b: squareSum += curSquare minRoot += 1 curSquare = minRoot * minRoot print("Case " + str(i + 1) + ":", squareSum) |
沒有留言:
張貼留言