python水仙花问题求助
009作业让编出100-999水仙花数(eg 153 = 1^3+5^3+3^3 这类数)的题目我想利用 sxh = 100*a + 10*b+ c
a为1-10一个数,b,c为0-10的任一数,一次循环重置一次a,b,c
通过sxh / a**3 + b**3 + c **3=0
print(sxh)这种方式解决问题
首先问下大佬们这个思路对不对
如果思路对,这个循环print怎么break。。。
谢解答dalao' 这种随机思路很不好,如果点背一直找不到,如果点好了一下就找到了,
不过原题好像有4个还是几个来着,不是只找到一个,
还是不要考虑random 本帖最后由 heidern0612 于 2018-11-28 19:57 编辑
前面思路是对的,后面不要随机最好。while循环不好判断假,最好写个for循环用range圈定范围。是的话就打印出来,不是的话就continue。 heidern0612 发表于 2018-11-28 19:56
前面思路是对的,后面不要随机最好。while循环不好判断假,最好写个for循环用range圈定范围。是的话就打印 ...
print("100-999的水仙花数")
y=1
while y :
for i in range(0,9):
a=i
for o in range(1,9):
b = o
for p in range(1,9):
c = p
sxh = 100*a + 10*b + c
if sxh %(a**3)+(b**3)+(c**3) == 1:
print(sxh)
感觉我这样写逻辑没什么错啊。。。。run后一个数都数不出来。。。{:10_266:} heidern0612 发表于 2018-11-28 19:56
前面思路是对的,后面不要随机最好。while循环不好判断假,最好写个for循环用range圈定范围。是的话就打印 ...
能帮忙按这个思路写个范例吗?十分感谢{:10_266:} 本帖最后由 heidern0612 于 2018-11-28 20:28 编辑
cher112 发表于 2018-11-28 20:19
能帮忙按这个思路写个范例吗?十分感谢
你的求余除有问题,不是这么写。
直接sxh=a**3+b**3+c**3不行吗?为啥多此一举用求余除呢?
另外你的range范围也不对,百位的范围应该是1到10,十位跟各位都应该是0到10才对。
手机打的不方便,明天早上给你发代码。 本帖最后由 cher112 于 2018-11-28 20:30 编辑
。。 cher112 发表于 2018-11-28 20:17
print("100-999的水仙花数")
y=1
while y :
按你的思路修改的。
print("100-999的水仙花数")
for i in range(0,9):
a=i
for o in range(1,9):
b = o
for p in range(1,9):
c = p
sxh = 100*a + 10*b + c
if sxh == (a**3)+(b**3)+(c**3):
print(sxh) 冬雪雪冬 发表于 2018-11-28 20:29
按你的思路修改的。
我刚run了下,按这样只能输出两个水仙花数,可答案是4个。。
怎么回事{:10_250:} cher112 发表于 2018-11-28 20:32
我刚run了下,按这样只能输出两个水仙花数,可答案是4个。。
怎么回事
range的范围不准确
print("100-999的水仙花数")
for i in range(1,10):
a=i
for o in range(10):
b = o
for p in range(10):
c = p
sxh = 100*a + 10*b + c
if sxh == (a**3)+(b**3)+(c**3):
print(sxh) 冬雪雪冬 发表于 2018-11-28 22:00
range的范围不准确
谢谢!{:10_277:}
页:
[1]