题目: 请判断一个数是不是水仙花数.其中水仙花数定义各个位数立方和等于它本身的三位数.输入有多组测试数据,每组测试数据以包含一个整数n(100<=n<1000)输入0表示程序输入结束.输出如果n是水仙花数就输出Yes否则输出No样例输入1531540样例输出YesNo class Shui: def __init__(self,str): self.str=str def carculate(self): n=len(self.str) sum = 0 for i in range(0,n):
#找出水仙花数 def sxh(start, end): if end >= start and start >=100 and end<= 999: num=start #将num的值初始化 L =[] while num<=end: x=num%10 #num取个位数 y=num//10%10 #num取十位数 z=num//100 #num取百位数 if (num==pow(x,3)+pow(y,3)+pow(z,3)): L.append(num) #将num放在一个列表里
输出"水仙花数".所谓水仙花是指一个3位数的十进制数,其各位数字的立方和等于该数本身.例如:153是水仙花数. 用for循环实现水仙花数的计算图如下所示: 1 for i in range(100,1000): 2 a = i//100 3 b = (i-a*100)//10 4 c = (i-a*100-b*10) 5 6 if i == pow(a,3)+pow(b,3)+pow(c,3): 7 print(i)
水仙花数业内的大家可能听说过,但是对于初学者来讲,对于水仙花数还是比较陌生的. 首先要知道的是水仙花数的计算公式:153=1**3+5**3+3**3: 如何去判定这个数是否为水仙花数,最好的办法就是用for内嵌循环了,因为涉及到了公式所以很多数学逻辑不是很好的兄台,就尴尬了,其实有一个比较简单的数学逻辑来运算,如设定一个1-999的水仙花数, 程序如下: for x in range(1,10): #百位数的计算 for y in range(1,10):#十位数的计算 for z in r
题目: 打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方. 我的源代码: # 输出所有的水仙花数: # 所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方. for i in range(100,100
#-*- coding: utf-8-*-import timeimport math#获取3位数的水仙花数start1 = time.time()start = time.time() numbers = []for i in range(100,1000): a = i % 10 b = i // 10 % 10 c = i // 100 if((a ** 3) + (b ** 3) + (c ** 3)) == i: numbers.append(i) for j in numbers:
# coding:utf-8"""水仙花数是指一个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153) 题目:求100-999之间的水仙花数"""for i in range(100,1000): a=(int(str(i)[0]))**3 b=(int(str(i)[1]))**3 c=(int(str(i)[2]))**3 if a+b+c==i:
# 打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,# 其各位数字立方和等于该数本身.例如:153是一个"水仙花数",# 因为153=1的三次方+5的三次方+3的三次方.方法一:先设定百位.十位.各位都是0~9中的一个数字,再利用循环查找的方法计算: for a in range(10): for b in range(10): for c in range(10): n = a * 100 + b * 10 + c if n == a
打印出三位水仙花数方法及解释 num = 100while num <= 999: #这里num 小于等于999 则运行 填1000也可以 a = num % 10 #num对10取余 b = num // 10 % 10 #num对10取整在取余 c = num // 100 #num对100取整 if num == a**3 + b**3 + c**3: #如果num等于 a b c 的三次方则打印 print(num) #打印 num += 1 #最终计算完num加1 调试输出:15337
题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身.例如: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 / 1