python列印水仙花數的個人總結

2022-08-27 06:03:09 字數 1898 閱讀 8823

面試過程中,提到python,面試最多的就是讓你現場寫**實現水仙花、冒泡、九九乘法表,這些面試方法旨在校驗面試者的python基礎和思維邏輯。

先從水仙花說起,水仙花是指乙個n位正整數(n>=3),它的每個微商的數字的n次冪之和等於它本身。下面將從「輸入任意正整數n(n>=3)列印」和「列印100-999的水仙花數」具體**講解分析

1、輸入任意正整數n(n>=3)列印:

#!/usr/bin/python

#-*- coding:utf-8 -*-#水仙花是指乙個n位正整數(n>=3

),它的每個微商的數字的n次冪之和等於它本身。

#輸入任意正整數n(n>=3

)列印def test(n):

list = #定義乙個list列表

for i in range(pow(10,n-1),pow(10

,n)): #range函式定義乙個迴圈區間,pow函式實現引數的n次方。

# 假如n=3,那麼range函式裡面的引數為:range(100,10000

). # for迴圈會遍歷包含100到9999之間的數

list = map(int

,str(i)) #map(x,y)中,x作為要實現的結果,y為原始引數。

# python2.x會返回列表,python3.x會返回迭代器。

# 在此把map返回的結果放到list列表中,相當於把上面遍歷的數值的百位、十位、個位分離,如上面的for迴圈遍歷到153,會返回[

1,5,3

]格式 num = 0

#定義乙個變數

for j in range(0,len(list)): #在上乙個for迴圈裡再巢狀乙個迴圈,比如上乙個迴圈遍歷到153,列表形式為[1,5,3

] #在這裡len函式取list表的長度,list表有3個數,所以長度為3.故該迴圈從0到2進行迴圈

num = num+pow(list[j],n) #pow函式返回每個迴圈數的n次方結果,如[1,5,3],迴圈完畢後pow函式返回的結果為1、75、27

. # 因為num每次迴圈都會加上乙個迴圈返回的結果,故num=153

if num==i: #在此進行判斷,如果num值等於第乙個for迴圈遍歷的值,就進行列印

print i #這裡重點說明一下:如果寫成

"return i

",在呼叫方法時只會列印乙個數值

if __name__ == '

__main__':

n = int(raw_input('

請輸入立方數:

')) #raw_input函式直接讀取控制台輸入(任何型別的輸入它都會接受),int函式的作用是將輸入的字元轉換為int型別

test(n) #呼叫方法

2、列印100-999的水仙花數:

#!/usr/bin/python

# -*- coding: utf-8 -*-#列印100-999的水仙花數

for i in range(100,1000):#for迴圈區間為100-999的數

a = i//

100 #取整除,返回商的整數部分。該處返回百位數數字

b = (i-a*100)//

10 #該處返回十位數上的數字

c = i-a*100-b*10

#該處返回個位上的數字

if a*a*a+b*b*b+c*c*c ==i : #這裡做是否滿足水仙花數的邏輯判斷

print i #列印符合條件的數字

希望能幫助到需要的夥伴,如有疑惑可聯絡我。也歡迎大牛指正!

列印水仙花數

列印水仙花數是程式設計中的乙個非常基本的演算法,也是乙個非常重要的演算法 水仙花數是指乙個三位數中的每一位的立方和是這個三位數 即 100a 10b c a 3 b 3 c 3 如 153 1 3 5 3 3 3 實現 方法一 單個for迴圈 include int main return 0 執行...

列印水仙花數

輸入 檔名稱 sum123.cpp 作 者 林海雲 完成日期 2014年12月16日 版 本 號 v2.0 問題描述 列印出所有 水仙花數 所謂 水仙花數 是指乙個三位數,其各位數字立方和等於該本身。例如 153是乙個水仙花數,因為153 1 3 5 3 3 3 程式輸入 程式輸出 輸出所有可能數 ...

列印水仙花數

列印出所有的 水仙花數 所謂 水仙花數 是指乙個三位數,其各位數字立方和等於該數本身。例如 153是乙個 水仙花數 因為153 1的三次方 5的三次方 3的三次方。分析 利用for迴圈遍歷100 999裡的數,宣告乙個布林型方法,每個數分解出個位,十位,百位,若各位數字立方和等於該數本身,則retu...