Python實例練習(xí)水仙花數(shù)問題講解
1. 問題描述
水仙花數(shù)也被稱為超完全數(shù)字不變數(shù)、自戀數(shù)、自冪數(shù)、阿姆斯壯數(shù)或阿姆斯特朗數(shù),水仙花數(shù)是指一個3位數(shù),它的每個位上的數(shù)字的3次冪之和等于它本身。
1、水仙花數(shù)是一個三位數(shù):111 333 456 999 530
2、水仙花數(shù)的個位、十位、百位的數(shù)字立方和等于原數(shù)
小伙伴們看了問題描述后,一定要自己先練習(xí),再去看博主的代碼和解題思路,才能提高自己的編程水平,全靠自覺喲?。?!
2. 問題分析
怎么獲取個位、十位、百位上的數(shù)?
- 個位數(shù)
371 :就是原始數(shù)字對10進(jìn)行取余的運(yùn)算結(jié)果 371 % 10 = 1
- 十位數(shù)
371:371通過除以10,可以將7移動到個位上去(整數(shù)):371 // 10 = 37
37:37對10進(jìn)行取余可以得到最后一位的值7 :37 % 10 = 7
- 百位數(shù)
371:3就是原始數(shù)字除以100的結(jié)果(整除):371 // 100 = 3
- 思考:任意數(shù)字的指定位置上的數(shù)值如何求?
123456789:先10000得到12345;再對10取余得到5
3. 算法思路
1. 使用循環(huán)從100開始到999結(jié)束
2. 每次的循環(huán)體內(nèi),獲取百位數(shù)數(shù)字、十位數(shù)數(shù)字、個位數(shù)數(shù)字
3. 判斷百位數(shù)數(shù)字三次方加十位數(shù)數(shù)字的三次方加個位數(shù)數(shù)字的三次方是否等于它本身,如果是就是水仙花數(shù)。
4. 代碼實現(xiàn)
for循環(huán)代碼實現(xiàn)
實現(xiàn)代碼??:
print('100到1000之前的所有水仙花數(shù)如下:') for i in range(100, 1000): # 取百位數(shù)字 371 // 100 = 3 x = i // 100 # 取十位數(shù) 371 // 10 =3 7; 37 % 10 = 7 y = i // 10 % 10 # 取個位數(shù) 371 % 10 = 1 z = i % 10 # 判斷個位、十位、百位的數(shù)字立方和等于原數(shù) if x ** 3 + y ** 3 + z ** 3 == i: print(f'{i}是水仙花數(shù)')
運(yùn)行結(jié)果:
while循環(huán)代碼實現(xiàn)
實現(xiàn)代碼:
print('100到1000之前的所有水仙花數(shù)如下:') number = 100 while number < 1000: # 取百位數(shù)字 371 // 100 = 3 x = number // 100 # 取十位數(shù) 371 // 10 =3 7; 37 % 10 = 7 y = number // 10 % 10 # 取個位數(shù) 371 % 10 = 1 z = number % 10 # 判斷個位、十位、百位的數(shù)字立方和等于原數(shù) if x ** 3 + y ** 3 + z ** 3 == number: print(f'{number}是水仙花數(shù)') # 需要設(shè)置number每次加一 number += 1
運(yùn)行結(jié)果:
到此這篇關(guān)于Python實例練習(xí)水仙花數(shù)問題講解的文章就介紹到這了,更多相關(guān)Python水仙花數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實現(xiàn)登錄人人網(wǎng)并抓取新鮮事的方法
這篇文章主要介紹了Python實現(xiàn)登錄人人網(wǎng)并抓取新鮮事的方法,可實現(xiàn)Python模擬登陸并抓取新鮮事的功能,需要的朋友可以參考下2015-05-05python解析Chrome瀏覽器歷史瀏覽記錄和收藏夾數(shù)據(jù)
大家好,本篇文章主要講的是python解析Chrome瀏覽器歷史瀏覽記錄和收藏夾數(shù)據(jù),感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下2022-02-02Windows環(huán)境下python環(huán)境安裝使用圖文教程
這篇文章主要為大家詳細(xì)介紹了Windows環(huán)境下python安裝使用圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-03-03python中如何正確使用正則表達(dá)式的詳細(xì)模式(Verbose mode expression)
許多程序設(shè)計語言都支持利用正則表達(dá)式進(jìn)行字符串操作,python自然也不例外,下面這篇文章主要給大家介紹了關(guān)于在python中如何正確使用正則表達(dá)式的詳細(xì)模式(Verbose mode expression)的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。2017-11-11Python?Flask實現(xiàn)快速構(gòu)建Web應(yīng)用的方法詳解
Flask是一個輕量級的Web服務(wù)器網(wǎng)關(guān)接口(WSGI)web應(yīng)用框架,本文將和大家一起詳細(xì)探討一下Python?Flask?Web服務(wù),需要的小伙伴可以學(xué)習(xí)一下2023-06-06關(guān)于Django框架的關(guān)系模型序列化和一對多關(guān)系中的序列化解析
序列化的意思是把字典的形式轉(zhuǎn)化成Json格式。當(dāng)我們展示數(shù)據(jù)的時候需要使用,反序列化的話,就是Json轉(zhuǎn)成字典形式,存儲數(shù)據(jù)時候使用,需要的朋友可以參考下2023-05-05使用python Telnet遠(yuǎn)程登錄執(zhí)行程序的方法
今天小編就為大家分享一篇使用python Telnet遠(yuǎn)程登錄執(zhí)行程序的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01