面試過程中,提到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...