python实现水仙花数 |
您所在的位置:网站首页 › python求水仙花数1000while › python实现水仙花数 |
题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。 程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 问题1: 判读一个数是否为水仙花数: def printNarcissisticNumber(self, num): '判断一个数是否是水仙花数' num = int(num) if num < 100 or num > +1000: print("不是水仙花数") else: geWei = num % 10 baiWei = int(num / 100) shiWei = int((num - baiWei * 100) / 10) # print(geWei) # print(shiWei) # print(baiWei) sum = geWei * geWei * geWei + shiWei * shiWei * shiWei + baiWei * baiWei * baiWei if sum == num: print("%d是水仙花数" % num) else: print("不是水仙花数")问题2: 输出所有的水仙花数。 def printNarcissisticNumber(self): '判断一个数是否是水仙花数' for num in range(100, 1000): geWei = num % 10 baiWei = int(num / 100) shiWei = int((num - baiWei * 100) / 10) # print(geWei) # print(shiWei) # print(baiWei) sum = geWei * geWei * geWei + shiWei * shiWei * shiWei + baiWei * baiWei * baiWei if sum == num: print("%d是水仙花数" % num)结果: 153是水仙花数 370是水仙花数 371是水仙花数 407是水仙花数 方法二: 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 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |