สมมติว่าเรามีตัวเลข n เราต้องเช็คก่อนว่าเลขนั้นเป็นเลขกำลังสองสมบูรณ์หรือไม่ โดยเติม 1 เข้าไปด้วยหรือไม่
ดังนั้น หากอินพุตมีค่าเท่ากับ n =288 ผลลัพธ์จะเป็น True เมื่อบวก 1 แล้วจะกลายเป็น 289 ซึ่งเท่ากับ 17^2
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- res_num :=n + 1
- sqrt_val :=ส่วนจำนวนเต็มของรากที่สองของ (res_num)
- ถ้า sqrt_val * sqrt_val เหมือนกับ res_num แล้ว
- คืนค่า True
- คืนค่าเท็จ
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
โค้ดตัวอย่าง
from math import sqrt def solve(n): res_num = n + 1 sqrt_val = int(sqrt(res_num)) if sqrt_val * sqrt_val == res_num: return True return False n = 288 print(solve(n))
อินพุต
288
ผลลัพธ์
True