求n位數的水仙花數的演算法 python

2021-10-09 09:23:17 字數 497 閱讀 3088

def getnarcissisticnumbers(self,n):

l = #存放滿足要求的水仙花數

if n == 1:

store =

for item in range(10):

for j in range(pow(10,n-1),pow(10,n)): #j表示幾位數,例如n == 4,就是所有的四位數

j_str = str(j) #先將整數j轉換為字串,方便依次取下標

sums = 0

for k in range(len(j_str)):

sums += store[int(j_str[k])] #這裡int(j_str)這裡迴圈依次取出整數j的每乙個數字

if j == sums:

return l

優化點

用列表存放n次冪,第k個就是k的n次方

用字串實現數字分離

reference:

求水仙花 求 3 位數中的水仙花數?

水仙花數嘛!乙個數n,就是3 位數中,每個位上的數,3 次方以後,依舊等於n 解題關鍵 1 對水仙花組成的理解 2 理解,什麼是取模 什麼是取餘 ok,擼碼開始 include stdio.h int main return 0 執行結果如下 組成元素 a 1 b 5 c 3水仙花數有 153 組成...

求n位 水仙花數

n位水仙花數的範圍是 10n 1,10n 核心操作 2 1.如何得到每一位?a.核心思想 對得到的數進行先取餘後取整的迴圈操作。b.具體操作 用一變數g來得到將要判斷的值,用變數h來依次存放每一位,g取餘後把值賦給變數h,然後g再進行除10運算,如此迴圈往復,直到h依次得到每一位為止。2 2.如何將...

求n位水仙花數

求n位水仙花數 n位水仙花數的範圍是 10n 1,10n 核心操作 a.核心思想 對得到的數進行先取餘後取整的迴圈操作。b.具體操作 用一變數g來得到將要判斷的值,用變數h來依次存放每一位,g取餘後把值賦給變數h,然後g再進行除10運算,如此迴圈往復,直到h依次得到每一位為止。a.核心思想 呼叫ma...