Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

เลขอาร์มสตรองใน Python

สมมติว่าเรามีจำนวน k หลัก N จำนวน N จะเป็นเลขอาร์มสตรองเมื่อผลรวมของแต่ละหลักยกกำลัง k เท่ากับ N เราต้องคืนค่า true หากเป็นเลขอาร์มสตรอง มิฉะนั้น false

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนต่อไปนี้ −

  • power := จำนวนหลัก
  • temp := n, res = 0
  • while temp ไม่ใช่ 0
    • res := res + (temp mod 10) ^ power
    • temp := temp / 10 // การหารจำนวนเต็ม
  • ถ้า res = n คืนค่า true มิฉะนั้น false

ตัวอย่าง

มาดูการนำไปใช้เพื่อความเข้าใจที่ดีขึ้น −

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