Python編程之水仙花數

2021-02-19 計量經濟學服務中心

本節內容主要對Python中if和for循環應用進行簡要的學習

水仙花數(Narcissistic number)也被稱為超完全數字不變數(pluperfect digital invariant, PPDI)、自戀數、自冪數、阿姆斯壯數或阿姆斯特朗數(Armstrong number),水仙花數是指一個 n 位數(n≥3 ),它的每個位上的數字的 n 次冪之和等於它本身(例如:1^3 + 5^3+ 3^3 = 153)。

定義:水仙花數只是自冪數的一種,嚴格來說3位數的3次冪數才稱為水仙花數。

附:其他位數的自冪數名字

一位自冪數:獨身數

兩位自冪數:沒有

三位自冪數:水仙花數

四位自冪數:四葉玫瑰數

五位自冪數:五角星數

六位自冪數:六合數

七位自冪數:北鬥七星數

八位自冪數:八仙數

九位自冪數:九九重陽數

十位自冪數:十全十美數

列印出所有的「水仙花數」 ,所謂「水仙花數」是指一個三位數,其各位數字立方和等於該數本身。例如:153 是一個「水仙花數」 ,因為 153=1 的三次方+5 的三次方 +3 的三次方。

Python代碼1如下:

max_num = int(input('請輸入最大範圍'))  # 獲取小於指定數的阿姆斯特朗數

for num in range(0, max_num):

      sum = 0

    length = len(str(num))

    temp = num

    for i in range(length):

        sum += (temp % 10) ** length

        temp //= 10

    if sum == num:

        print(num)

Python輸出結果以及操作圖示如:

Python代碼2如下:

import math

for i in range(100,1000):

    x = math.floor(i / 100) # 獲取百位上的數

    y = math.floor((i - x * 100) / 10)  # 獲取十位上的數

    z = i - math.floor(i / 10) * 10   # 獲取個位上的數

    if i == x ** 3 + y ** 3 + z ** 3:

        print(i,end=", ")

Python代碼3如下:

l = [ ]

for i in range(100,1000):

      m = int(i/100)

      n = int(i%100/10)

      p = i%100%10

      if i == m*m*m+n*n*n+p*p*p:

          print(i)

          l.append(i)

print(l)     

上述代碼已經全部測試,均有效,有什麼問題直接留言交流!

本文來源:代碼1來源百度百科,其他來源於網絡

相關焦點

  • java程序之水仙花數
    在我們編程裡面的循環這一方面,肯定少不了「水仙花數」這樣的一個程序,在學校裡面老師應該會讓你做一個「水仙花數」這樣的程序。小編當時就被一個這樣的程序搞得滿頭霧水。根本沒有思路呀!等學完之後才明白原來是這個樣呀,茅塞頓開。
  • 「每日一練」巧用python列印出所有的「水仙花數」
    "水仙花數"估計很多小夥伴看到都會懵吧,這個概念比較小眾,但其實本文主要講述的是python如何從眾多數裡邊篩選出符合條件的數!下邊我們就一起來看看python是怎麼輸出的?題目列印出所有的"水仙花數",所謂"水仙花數"是指一個三位數,其各位數字立方和等於該數本身。例如:153是一個"水仙花數",因為153=1的三次方+5的三次方+3的三次方。
  • 水仙花數的簡單思維和Python設計方法
    1.概念理解:要設計程序輸出「水仙花數」,就需要知道「水仙花數」的概念。我們把一個三位數其各位數字的立方和等於該數本身的數字稱為「水仙花數」。例如,153是「水仙花數」,因為153=1*1*1+5*5*5+3*3*3。
  • Scratch之思維訓練一:水仙花數的計算
    不知道你有沒有發現,最近在各種論壇啊,微信朋友圈多了不少關於少兒編程乃至幼兒編程的課程廣告。
  • Python基礎知識:善用列表推導式,優雅求解水仙花數
    什麼是水仙花數水仙花數也被稱為超完全數字不變數、自戀數、自冪數、阿姆斯壯數或阿姆斯特朗數,嚴格的定義水仙花數,是指一個 3 位數,它的每個位上的數字的 3次冪之和等於它本身。如371 = 3^3 + 7^3+ 1^3,則371是一個水仙花數。Python中的求解思路根據水仙花數的定義,可以理出下面的編程思路:1. 新建一個空列表x,用以存儲所有的水仙花數2.
  • 求1000以內的水仙花數
    看知乎上有朋友說還不明白怎麼判斷水仙花數,今天我們就來看看這個問題。(PS:「求1000以內的水仙花數」這道題阿湯哥記憶猶新。到現在還記得這是我大一上學期期末考試的編程題。)首先給出水仙花數定義。水仙花數(Narcissistic number)也被稱為超完全數字不變數(pluperfect digital invariant, PPDI)、自戀數、自冪數、阿姆斯壯數或阿姆斯特朗數(Armstrong number),水仙花數是指一個 3 位數,它的每個位上的數字的 3次冪之和等於它本身(例如:1^3 + 5^3+ 3^
  • C語言 | 輸出水仙花數
    在編程方面有著天賦異稟的人畢竟是少數,我們大多數人想要從C語言小白進階到高手,需要經歷的是日積月累的學習。那麼如何學習呢?當然是每天都練習一道C語言題目!!作者閆小林白天搬磚,晚上做夢。我有故事,你有酒麼?例54:C語言編程輸出100-1000之間所有的「水仙花數」,所謂的「水仙花數」是指一個3位數,其各位數字立方和等於該數本身。
  • Scratch3.0編程小課堂41(數學:判斷水仙花數)
    今天我們用scratch來判斷水仙花數。判斷水仙花數判斷水仙花數題目:輸入一個三位數,判斷它是否為水仙花數;角色:小貓;知識點:水仙花數,變量,偵測,運算,選擇;水仙花數(Narcissistic number)也被稱為超完全數字不變數(pluperfect digital invariant, PPDI)、自戀數、自冪數、阿姆斯壯數或阿姆斯特朗數(Armstrong number),水仙花數是指一個 3 位數,它的百位、十位、個位上的數字的 3次冪之和等於它本身(例如:水仙花數153=1的三次方+5的三次方+
  • 水仙花數
    設 當然,即使我們得到了n≤58的結論,想要一一求出所有的水仙花數仍然是一件很麻煩的事情,以前,找尋水仙花數的紀錄一直由美國數學家納爾遜所保持,他找到了一個10位的水仙花數:4679307774,由於在求解思路上的限制,對水仙花數的探索陷入了一個巨大的瓶頸。
  • Python遊戲編程
    Python遊戲編程課程目標本課程把遊戲開發實踐應用於python編程課程的教學之中,培養學生對編程的興趣
  • Python基礎知識儲備,與眾不同的for循環
    python循環for循環語法結構for <variable>變量 in < sequence >字符串,列表,元組,字典,集合< statements >循環體,循環最後為False的時候就執行elseelse:< statements >示例:編程實現在控制臺中求從1-100之和,代碼縮進請參考演示圖片sum_of_number = 0 # 存儲和的值for i in range(0, 101):sum_of_number += ielse
  • python學習路線分享
    學習python不知道如何下手,不知道要學哪些知識,看完下面這些你就知道了。把下面的知識學完,就是一個合格的「捕蛇」者了。AAA軟體教育目錄基礎知識學習(MOOC嵩天+零散知識) 無基礎不能高樓,合抱之木,生於毫末,九層之臺,起於累土 1.1 Python MOOC練習3 1.2 Python MOOC練習4 1.3
  • 列印「水仙花數」,只有一種方法?Python帶你用多種方式實現輸出
    今天,我們來和大家探討一個入門級的話題:使用Python列印輸出"水仙花數"水仙花所謂"水仙花數"是指一個三位數,其各位數字立方和等於該數本身。要用到公式如:153是一個"水仙花數",因為153=1的三次方+5的三次方+3的三次方。
  • 少兒學python編程:小學幾年級開始學編程?學哪個程式語言合適?
    大家好,歡迎學習python,本文從基礎開始,會連續寫作,喜歡的朋友可以收藏一下,在某一天用到的時候可以回來看一看。思想決定行動。看某一件事情是否需要去做,首先,要從思想上高度重視,並且從內心願意為之付出和努力。今天就來談談為什麼要學習PYthon,建議從幾歲開始學習。
  • python+C、C++混合編程的應用
    我看到的一個很好的Python與c/c++混合編程的應用是NS3(Network Simulator3)一款網絡模擬軟體,它的內部計算引擎需要用高性能,但在用戶建模部分需要靈活易用。NS3的選擇是使用C/C++來模擬核心部件和協議,用python來建模和擴展。這篇文章介紹python和c/c++三種混合編程的方法,並對性能加以分析。
  • Python零基礎編程——起步並搭建環境
    適合本文,將從零介紹講解編程入門,已有基礎的同學當溫故而知新,未知編程為何物的同學開啟技術之旅。一 編程技術簡介1-程序是什麼?程序就是你使用的電子產品內部的數據+邏輯算法。你手機的微信、頭條、抖音、快手、QQ等,你能看到的一切,都是程序。都是人造的科學。你也可以寫這些程序,只要你掌握了編程技術。而編程,就是編寫程序的過程。
  • LabVIEW基礎知識:手把手以實例教你學For循環和移位寄存器編程
    另外,由於它並非一種封閉的語言,而是具有強大的外部接口能力,可以實現與C/C++、Basic、Matlab等程式語言互通的能力,現在,LabVIEW不僅僅局限於虛擬儀器軟體類的開發,而是已經發展成為了一種通用的、完善的、開放的高級程式語言。
  • Python為什麼這麼火?小孩子適合學習python編程嗎?
    Python出現的時間也就短短幾年,但就是在這短短幾年內,它打破了長久以來程式語言被三巨頭(C/JAVA/C++)統治的局面,蟬聯各大編程熱門語言排行榜榜首,成為當下最熱門的明星級程式語言之一。IEEE Spectrum 2017程式語言排行榜為何Python能迅速火起來?今天咱們就來好好聊聊最直接的幾個原因。
  • Python編程學了有用嗎?
    Python編程學了有用嗎?眾所周知,目前家長對於孩子的教育越來越重視,培養孩子的編程思維也是大家關心的話題,孩子學習Python語言,需要使用精確到標點、分號等特殊字符,可以提高孩子的編程能力和邏輯思維能力。作為成成年人學python編程可以大大提高工作效率。
  • C語言求水仙花數代碼解析
    水仙花數「水仙花數」又稱為「阿姆斯特朗數」。