python2 7練習小例子(十二)

2022-08-29 12:09:09 字數 2479 閱讀 8727

12):題目:列印出所有的"水仙花數",所謂"水仙花數"是指乙個三位數,其各位數字立方和等於該數本身。例如:153是乙個"水仙花數",因為153=1的三次方+5的三次方+3的三次方。

程式分析:利用for迴圈控制100-999個數,每個數分解出個位,十位,百位。

程式源**:

#!/usr/bin/python

# -*- coding: utf-8 -*-

for n in range(100,1000):

i = n / 100

j = n / 10 % 10

k = n % 10

if n == i ** 3 + j ** 3 + k ** 3:

print n

以上例項輸出結果為:

153370371407

將三位數看成由三個數組成,並判斷其各位數字立方和是否等於該數本身:

#!/usr/bin/python# -*- coding: utf-8 -*-forx inrange(1,10):fory inrange(0,10):forz inrange(0,10):s1=x*100+y*10+z

s2=pow(x,3)+pow(y,3)+pow(z,3)ifs1==s2:print"水仙花數有:%7ld"%(s1)

#!/usr/bin/python# -*- coding: utf-8 -*-fori inrange(100,1000):s =str(i)ifint(s[0])**3+int(s[1])**3+int(s[2])**3==i:print(i)

相容 python2.x 與 python3.x,python3.x 取整為 //,而不是 /, 參考方法:

#!/usr/bin/python3# -*- coding: utf-8 -*-fori inrange(100,1000):h=i//100t=(i-100*h)//10s=i-100*h-10*t

ifi==h**3+t**3+s**3:print(i)

#!/usr/bin/env python# -*- coding: utf-8 -*-a =1b =1c =1fora inrange(0,10):forb inrange(0,10):forc inrange(0,10):ifint(a)**3+int(b)**3+int(c)**3==a*100+b*10+c anda !=0:x =a*100+b*10+c

print(x)

#!/usr/bin/python# -*- coding: utf-8 -*-forx inrange(10):fory inrange(10):forz inrange(10):w =x*100+y*10+z

if(w>100)and(w ==x**3+y**3+z**3):printw

#!/usr/bin/python# -*- coding: utf-8 -*-#列表解析法l=[x**3+y**3+z**3forx inrange(0,10)fory inrange(0,10)forz inrange(0,10)if(str(x)+str(y)+str(z))==str(x**3+y**3+z**3)]print(l)

#!/usr/bin/python# -*- coding: utf-8 -*-forn inrange(100,1000):m =n

sumvalue =0while(m>0):(m,r)=divmod(m,10)sumvalue +=r **3ifn ==sumvalue:print(n)

#coding:utf-8print[i fori inrange(100,1000)if(i/100)**3+((i-i/100*100)/10)**3+(i%10)**3==i]

python3 參考:

#水仙花數是指乙個 n 位數(n≥3 ),它的每個位上的數字的 n 次冪之和等於它本身#生成器函式ppdi,可生成十進位制自然數中的所有水仙花數,共有88個defppdi():n=3while1:#生成器推導式l=(i fori inrange(10**(n-1),10**n)ifsum([int(str(i)[j])**n forj inrange(n)])==i)yieldl

n+=1#最大的水仙花數有39位deff(max):fori inppdi():forj ini:ifj<10**max:print(j)else:breakifj>10**max:break#為環保起見,建議7位以內即可 f(5)

這次的小例子有點意思。開始我都不知道水仙花數是什麼鬼?嘿嘿。。。

如果感覺不錯的話,請多多點贊支援哦。。。

python2 7練習小例子(九)

9 1 題目 暫停一秒輸出。程式分析 使用 time 模組的 sleep 函式。程式源 usr bin python coding utf 8 import time myd for key,value in dict.items myd print key,value time.sleep 1 暫...

python2 7練習小例子(七)

7 題目 將乙個列表的資料複製到另乙個列表中。程式分析 使用列表 程式源 usr bin python coding utf 8 a 1,2,3 b a print b 以上例項輸出結果為 1,2,3 importcopy a 1,2,3 b copy.copy a print b 1,2,3 a ...

python2 7練習小例子(五)

5 題目 輸入三個整數x,y,z,請把這三個數由小到大輸出。程式分析 我們想辦法把最小的數放到x上,先將x與y進行比較,如果x y則將x與y的值進行交換,然後再用x與z進行比較,如果x z則將x與z的值進行交換,這樣能使x最小。程式源 usr bin python coding utf 8 l fo...