|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
求水仙花数时代码如下
for a in range(1,10):
for b in range(0,10):
for c in range(0,10):
if a**3+b**3+c**3 == 100*a+10*b+c:
print(a+b+c)
输出的水仙花数中间带空格例如1 5 3
有什么好的解决办法吗
for i in range(100,1000):
sum = 0
temp = i
while temp:
sum = sum + (temp%10)**3
temp //= 10
if sum == i:
print(i)
上述求水仙花数的方法中,while temp和while temp >= 1:的效果相同是怎么做到的,或者说应该怎么理解while temp
本帖最后由 昨非 于 2020-11-7 10:01 编辑
- for a in range(1,10):
- for b in range(0,10):
- for c in range(0,10):
- if a**3+b**3+c**3 == 100*a+10*b+c:
- print(str(a)+str(b)+str(c)) #转为字符串再拼接到一起就好了
复制代码
地板除得到的temp依次是i的前两位,前一位,和0(此时跳出循环)
- for i in range(100, 1000):#遍历100到1000所有整数
- sum = 0 #定义求和变量,初值为0
- temp = i
- while temp:#当i得值不等于0时,一直循环
- sum = sum + (temp%10) ** 3 #temp取余10得到最后一位的数值,sum等于temp各位数之和
- temp //= 10 # 注意这里要使用地板除哦~ 这里得到temp的前两位
- if sum == i: #判断i是否等于其各位数的三次方之和
- print(i)#打印满足情况的i得值
复制代码
|
|