สมมุติว่าเรามีเลข k หลัก N โดย N คือเลขอาร์มสตรองเมื่อกำลัง k ของแต่ละหลักบวกกับ N ดังนั้นเราต้องคืนค่า จริง หากเป็น หมายเลขอาร์มสตรอง มิฉะนั้น เท็จ
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- กำลัง :=จำนวนหลัก
- อุณหภูมิ :=n, res =0
- ในขณะที่อุณหภูมิไม่ใช่ 0
- res :=res + (ตัวดัดแปลงชั่วคราว 10) ^ พลัง
- temp :=temp / 10 //การหารจำนวนเต็ม
- ถ้า res =n ให้คืนค่า จริง มิฉะนั้น เท็จ
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อทำความเข้าใจ −
import math class Solution(object): def poww(self,base,power): res = 1 while power: if power & 1: res *= base base *= base power>>=1 return res def isArmstrong(self, n): power =int(math.log10(n)) + 1 temp = n res = 0 while temp: res += (self.poww(temp%10,power)) temp//=10 return res == n ob1 = Solution() print(ob1.isArmstrong(153))
อินพุต
153
ผลลัพธ์
true