Python TQC考題310: 阿姆斯壯數

加入好友
加入社群
Python TQC考題310: 阿姆斯壯數 - 儲蓄保險王

#Python 阿姆斯壯數

#1634=1^4+6^4+3^4+4^4

“””

TQC數字反轉跟

位數加總

都是誘導把input()當成數字

跟本題的阿姆斯壯數一樣

用list會比較好處理

轉換成字符串並使用 len() 函數來確定一個數字的位數是一個有效且簡單的方法。當您將一個數字轉換成字符串,每個字符代表該數字的一位。使用 len() 函數可以直接獲得這個字符串的長度,也就是原始數字的位數。這個方法不僅直觀,而且在編寫代碼時非常方便。

“””

a = eval(input()) #輸入20
b = eval(input()) #輸入2000
L=[]
for i in range(a,b+1):
str1=str(i)
armLst=list(str1)
armLstdigit=[eval(j) for j in armLst]
length=len(armLst)
sum1=0

for k in range(length):
sum1+=armLstdigit[k]**length
if sum1 == eval(str1):L.append(str1)
print(L)
Ldigit=[eval(i) for i in L]
for i in range(len(Ldigit)):
print(Ldigit[i],end=” “)

Python TQC考題310: 阿姆斯壯數 - 儲蓄保險王

23/11/18補充

第二版考題:

Python TQC考題310: 阿姆斯壯數 - 儲蓄保險王

輸出範例:

Python TQC考題310: 阿姆斯壯數 - 儲蓄保險王

code:

# -*- coding: utf-8 -*-
"""
Created on Sat Nov 18 20:22:06 2023

@author: SavingKing
"""

def judge_armstrong(int_arg):
    strr = str(int_arg)
    len1 = len(strr)
    # lis_str = list(strr)
    lis_int = [ eval(i) for i in strr ]
    sum1=0
    for j in lis_int:
        sum1 += j**len1
    if sum1 == int_arg:
        judge=True
    else:
        judge=False
    return judge

def compute(n):
    lis_armstrong = []
    for i in range(1,n):
        if judge_armstrong(i) == True:
            lis_armstrong.append(i)
    return lis_armstrong,sum(lis_armstrong)

if __name__ == "__main__":
    lis_armstrong,sum1 =compute(999)
    for num in lis_armstrong:
        print(num)
    print(sum1)

輸出結果:

Python TQC考題310: 阿姆斯壯數 - 儲蓄保險王

推薦hahow線上學習python: https://igrape.net/30afN

加入好友
加入社群
Python TQC考題310: 阿姆斯壯數 - 儲蓄保險王

儲蓄保險王

儲蓄險是板主最喜愛的儲蓄工具,最喜愛的投資理財工具則是ETF,最喜愛的省錢工具則是信用卡

You may also like...

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *