Python3 判断一个三位数是否为水仙花数 完美解决
首先需要将这个数拆成三位数,%10
来取最右边第一位数,取一次余数后,就让这个数整除10,接下来继续%10
来取第二位的数。
取到一个数后,对这个数用pow
函数求立方。
最后将三个单独数字的立方和相加与这个要判断的数比较,相同则为水仙花数。
# -*- coding:cp936 -*-
'''------------------------------------------------------
【程序设计】
---------------------------------------------------------
题目:调用函数fun判断一个三位数是否“水仙花数”。
在main函数中从键盘输入一个三位数,并输
出判断结果。请编写fun函数。
说明:所谓“水仙花数”是指一3位数,其各位数字立方和
等于该数本身。
例如:153是一个水仙花数,因为153=1+125+27。
---------------------------------------------------------
注意:部分源程序给出如下。请勿改动主函数main和其它函数中的
任何内容,仅在函数的注释标志之间填入所编写的若干语句。
------------------------------------------------------'''
def fun(i):
#**********Program**********
s = 0
num = i
for j in range(3):
s += pow(num%10 ,3)
num //= 10
if i == s:
return 1
else:
return 0
#********** End **********
def main():
print("【请连续判断四次输入的三位数是否为水仙花数:】")
for n in range(4):
print("【第%d次:】" %(n+1))
a = int(input("【请输入一个三位数,并按回车确认:】"))
flag=fun(a);
if flag:
print("%d是【水仙花数】" %a);
else:
print("%d不是【水仙花数】" %a);
if __name__ == '__main__':
main()
复制