Python實例練習水仙花數(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ù)

小伙伴們看了問題描述后,一定要自己先練習,再去看博主的代碼和解題思路,才能提高自己的編程水平,全靠自覺喲!??!
2. 問題分析
怎么獲取個位、十位、百位上的數(shù)?
- 個位數(shù)
371 :就是原始數(shù)字對10進行取余的運算結果 371 % 10 = 1
- 十位數(shù)
371:371通過除以10,可以將7移動到個位上去(整數(shù)):371 // 10 = 37
37:37對10進行取余可以得到最后一位的值7 :37 % 10 = 7
- 百位數(shù)
371:3就是原始數(shù)字除以100的結果(整除):371 // 100 = 3
- 思考:任意數(shù)字的指定位置上的數(shù)值如何求?
123456789:先10000得到12345;再對10取余得到5
3. 算法思路
1. 使用循環(huán)從100開始到999結束
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ù)')
運行結果:

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ù)')
# 需要設置number每次加一
number += 1
運行結果:

到此這篇關于Python實例練習水仙花數(shù)問題講解的文章就介紹到這了,更多相關Python水仙花數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Django集成富文本編輯器summernote的實現(xiàn)步驟
在最近的項目中小編使用了這個富文本編輯器,選擇它的主要原因是配置非常簡單,默認支持普通用戶上傳圖片(不像ckeditor默認只有staff user才能上傳圖片。如果要讓普通用戶上傳圖片,還需修改源碼裝飾器)。現(xiàn)在讓我們來看看如何使用這個富文本編輯器2021-05-05
Python實現(xiàn)查找數(shù)組中任意第k大的數(shù)字算法示例
這篇文章主要介紹了Python實現(xiàn)查找數(shù)組中任意第k大的數(shù)字算法,涉及Python針對數(shù)組的排序、查找等相關操作技巧,需要的朋友可以參考下2019-01-01
Python GUI編程之tkinter 關于 ttkbootstrap 的使用
ttkbootstrap 是一個基于 tkinter 的界面美化庫,使用這個工具可以開發(fā)出類似前端 bootstrap 風格的 tkinter 桌面程序,這篇文章主要介紹了Python GUI編程之tkinter 關于 ttkbootstrap 的使用詳解,需要的朋友可以參考下2022-03-03
SpringMVC和SpringBoot接收參數(shù)的幾種方式詳解
這篇文章主要介紹了SpringMVC和SpringBoot接收參數(shù)的幾種方式詳解,Spring是分層的JavaSE/EE應用輕量級開源框架,以IoC和AOP為內(nèi)核,提供了展現(xiàn)層 Spring MVC和持久層Spring JDBC以及業(yè)務層事務管理等眾多的企業(yè)級應用技術,需要的朋友可以參考下2023-07-07
Django用戶注冊并自動關聯(lián)到某數(shù)據(jù)表條目的實現(xiàn)步驟
當一個新用戶注冊并且你想要自動關聯(lián)到特定的Box條目(假設其ID為1)時,下面給大家分享完整實現(xiàn)流程和步驟,對Django關聯(lián)數(shù)據(jù)表條目實現(xiàn)代碼感興趣的朋友跟隨小編一起看看吧2017-04-04

