程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python每日一練——第1天:水仙花數

編輯:Python

1. 問題描述

<font color=green size=4>水仙花數也被稱為超完全數字不變數、自戀數、自冪數、阿姆斯壯數或阿姆斯特朗數,水仙花數是指一個3位數,它的每個位上的數字的3次冪之和等於它本身。</font><br /><font color=black size=4>1、水仙花數是一個三位數:111 333 456 999 5302、水仙花數的個位、十位、百位的數字立方和等於原數</font><br /><font color=#0099ff size=4>小伙伴們看了問題描述後,一定要自己先練習,再去看博主的代碼和解題思路,才能提高自己的編程水平,全靠自覺喲!!!

2. 問題分析

<font color=red size=4>怎麼獲取個位、十位、百位上的數?</font><br />
  • <font color=black size=4>個位數37==1== :就是原始數字對10進行取余的運算結果 37==1== % 10 = ==1==<br />
  • <font color=black size=4>十位數3==7==1:3==7==1通過除以10,可以將7移動到個位上去(整數):3==7==1 // 10 = 3==7==3==7==:3==7==對10進行取余可以得到最後一位的值==7== :3==7== % 10 = ==7==<br />
  • <font color=black size=4>百位數==3==71:==3==就是原始數字除以100的結果(整除):==3==71 // 100 = ==3==<br />
  • <font color=black size=4>思考:任意數字的指定位置上的數值如何求?1234==5==6789:先10000得到1234==5==;再對10取余得到==5==

3. 算法思路

<font color=black size=4>1. 使用循環從100開始到999結束<br /><font color=black size=4>2. 每次的循環體內,獲取百位數數字、十位數數字、個位數數字<br /><font color=black size=4>3. 判斷百位數數字三次方加十位數數字的三次方加個位數數字的三次方是否等於它本身,如果是就是水仙花數。

4. 代碼實現

for循環代碼實現

實現代碼:
print('100到1000之前的所有水仙花數如下:')
for i in range(100, 1000):
 # 取百位數字 371 // 100 = 3
 x = i // 100
 # 取十位數 371 // 10 =3 7; 37 % 10 = 7
 y = i // 10 % 10
 # 取個位數 371 % 10 = 1
 z = i % 10
 # 判斷個位、十位、百位的數字立方和等於原數
 if x ** 3 + y ** 3 + z ** 3 == i:
 print(f'{i}是水仙花數')

運行結果:

while循環代碼實現

實現代碼:
print('100到1000之前的所有水仙花數如下:')
number = 100
while number < 1000:
 # 取百位數字 371 // 100 = 3
 x = number // 100
 # 取十位數 371 // 10 =3 7; 37 % 10 = 7
 y = number // 10 % 10
 # 取個位數 371 % 10 = 1
 z = number % 10
 # 判斷個位、十位、百位的數字立方和等於原數
 if x ** 3 + y ** 3 + z ** 3 == number:
 print(f'{number}是水仙花數')
 # 需要設置number每次加一
 number += 1

運行結果:

5. 如何讓刷題變得更加高效呢?

<font color=black size=5>1. 編程小白選手</font></br><font color=black size=3>很多剛入門編程的小白學習了基礎語法,卻不知道語法的用途,不知道如何加深映像,不知道如何提升自己,這個時候<font color=red size=3>每天刷自主刷一道題就非常重要(百煉成神),可以去牛客網上的編程初學者入門訓練。</font>該專題為編程入門級別,適合剛學完語法的小白練習,題目涉及編程基礎語法,基本結構等,每道題帶有練習模式和考試模式,可還原考試模式進行模擬,也可通過練習模式進行練習。</font></br>鏈接地址:牛客網 | 編程初學者入門訓練<font color=black size=5>2. 編程進階選手</font></br><font color=black size=3>當基礎練習完已經逐步掌握了各知識要點後,這個時候去<font color=red size=3>專項練習中學習數據結構、算法基礎、計算機基礎</font>等。先從簡單的入手,感覺上來了再做中等難度,以及較難的題目。<font color=red size=3>這三樣是面試中必考的知識點</font>,我們只有堅持每日自己去多加練習,拒絕平躺持續刷題,不斷提升自己才能沖擊令人滿意的公司。</font></br>鏈接地址:牛客網 | 專項練習<font color=black size=3>速度上號,大家一起沖擊大廠,有疑問評論區留言解答!!!
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved