三位數水仙花數的計算與改進

2021-10-07 16:53:02 字數 1126 閱讀 2079

初學python,記錄學習路徑

水仙花數指的是其各位數字的3次方和等於該數本身。

三位數的水仙花數

s = ""

for i in range(100, 1000):

t = str(i)#字串就相當於乙個小型的字典型別,位置是建,內容是值

if pow(eval(t[0]),3) + pow(eval(t[1]),3) + pow(eval(t[2]),3) == i :

s += "{},".format(i)#這裡的逗號指的是數字之間的分割符

print(s[:-1])#這裡採用了s[:-1]方式不輸出最後乙個逗號。也可以把所有結果放到乙個列表中,採用字串的.join()方法輸出結果。

然後我試圖用.join()函式去寫這段**

第一次:

s = ""

for i in range(100, 1000):

t = str(i)

if pow(eval(t[0]),3) + pow(eval(t[1]),3) + pow(eval(t[2]),3) == i :

s += "{},".format(i)

print(",".join(s))

然後發現結果是

1,5,3,3,7,0,3,7,1,4,0,7
仔細一想原來是s在被合併後沒有了間隔

於是為了人為的創造間隔,我選用了列表

第二次:

s=#creat a new list

for i in range(100, 1000):

t = str(i)#字串就相當於乙個小型的字典型別,位置是建,內容是值

if pow(eval(t[0]),3) + pow(eval(t[1]),3) + pow(eval(t[2]),3) == i :

print(','.join(str(i) for i in d))

效果還行

我這裡用的是嵩天老師的方法,輸入的是三位數,那麼可不可以直接輸入abc計算呢,我覺得應該也是可以的,讀者可以自行編寫。

部分原創

第乙個**見

C語言解決水仙花問題 三位數

首先得需要乙個自然數變數a,且需要用到乙個for迴圈來實現100 999的區間,其次是水仙花數的定義 它的每一位上的數的立方和加起來等於本身 我們很容易想到,要 int三個變數,分別是百位數 十位數 個位數,三個數字出來之後我們得拿乙個數把他們加起來,此時又要int乙個變數 shui然後就可以寫程式...

python使用迴圈列印所有三位數水仙花數的例項

首先水仙花數是什麼?水仙花數 narcissistic number 也被稱為超完全數字不變數 pluperfect digital invariant,ppdi 自戀數 自冪數 阿姆斯壯數或阿姆斯特朗數 armstrong number 水仙花數是指乙個 3 位數,它的每個位上的數字的 3次冪之和...

判斷乙個三位數是不是水仙花數

檔名稱 判斷乙個三位數是不是水仙花數 完成日期 2013年 11 月5日 版本號 v1.0 對任務及求解方法的描述部分 判斷乙個三位數是不是水仙花數 我的程式 include using namespace std int main int a,b,c,sum1,sum2 cout a b c su...