巴州區(qū)建設(shè)局網(wǎng)站百度搜索引擎推廣怎么弄
實例5:判斷水仙花數(shù)
水仙花數(shù)是一個3位數(shù),它的每位數(shù)字的3次冪之和等于它本身,例如13 + 53+ 33 = 153,153就是一個水仙花數(shù)。
本實例要求編寫程序,實現(xiàn)判斷用戶輸入的3位數(shù)是否為水仙花數(shù)的功能。
實例目標(biāo)
- 掌握Python中運算符的使用
- 了解if-else語句的使用
實例分析
判斷一個三位數(shù)是否是水仙花數(shù),可以將這個三位數(shù)進(jìn)行拆分依次獲取百位上的數(shù)字、十位上的數(shù)字、個位上的數(shù)字,然后根據(jù)水仙花數(shù)的特點判斷輸入的三位數(shù)是否為水仙花數(shù)。
例如,一個三位數(shù)abc,使用(abc//100%10)方式獲取百位上的數(shù)字a;使用(abc/10%10)方式獲取十位上的數(shù)字b;使用(abc%10)獲取個位上的數(shù)字c,然后計算a3+b3+c3的值與abc的中是否相等,如果相等則為水仙花數(shù),如果不相等則不為水仙花數(shù)。
代碼實現(xiàn)
num3 = int(input("請輸入一個三位數(shù):"))
hundreds_place = int(num3 // 100 % 10) ??# 百位
ten_place = int(num3 / 10 % 10)? ???????# 十位
one_place = int(num3 % 10)? ??????????# 個位
if hundreds_place ** 3 + ten_place ** 3 + one_place ** 3 == num3:
??? print(f"{num3}是水仙花數(shù)")
else:
??? print(f"{num3}不是水仙花數(shù)")
首先將input()函數(shù)接收用戶輸入的三位數(shù)轉(zhuǎn)換為int類型,并賦值給變量num3,然后分別獲取輸入三位數(shù)的百位數(shù)字、十位數(shù)字、個位數(shù)字并賦值給變量hundreds_place、ten_place、one_place,接著根據(jù)水仙花數(shù)的特點將各位上的三次方和進(jìn)行相加,最后使用if-else語句判斷相加結(jié)果與輸入的三位數(shù)是否相等,如果相等則使用print()函數(shù)輸出輸入的三位數(shù)是水仙花數(shù),如果不是則執(zhí)行else語句中的代碼,輸出輸入的三位數(shù)不是水仙花數(shù)。
代碼測試
運行代碼,控制臺輸出結(jié)果如下(是水仙花數(shù)):
請輸入一個三位數(shù):153
153是水仙花數(shù)
運行代碼,控制臺輸出結(jié)果如下(不是水仙花數(shù)):
請輸入一個三位數(shù):123
123不是水仙花數(shù)