零零零909 发表于 2020-2-24 09:28:19

水仙花那道题!!!

大佬们,答案咋看懂的啊{:10_266:},有一说一我是数学看不懂。 嘤嘤嘤!还有这是我自己瞎写的,哪错了呢?
f = int(1) , s = int(0) , t = int(0)
i = str('f' + 's' + 't')
while i < 1000:
i = str('f' + 's' + 't')
if i == (f**3) + (s**3) + (t**3):
    print (i,end = ' ' )
if t <= 9:
    t += 1
if t == 10:
    t = 0
    s += 1
if s <= 9:
    s += 1
else :
    s = 0
    f += 1
         

一个账号 发表于 2020-2-24 09:34:37

本帖最后由 一个账号 于 2020-2-24 09:40 编辑

能不能把答案贴上来?

蓝色忘忧草 发表于 2020-2-24 09:36:09

能不能贴一下题目呢?或者说明一下你想实现什么效果。

一个账号 发表于 2020-2-24 09:39:48

本帖最后由 一个账号 于 2020-2-24 09:41 编辑

蓝色忘忧草 发表于 2020-2-24 09:36
能不能贴一下题目呢?或者说明一下你想实现什么效果。

他要实现这种效果:

153 是水仙花数!
370 是水仙花数!
371 是水仙花数!
407 是水仙花数!

zltzlt 发表于 2020-2-24 09:40:02

第一句语法有误

一个账号 发表于 2020-2-24 09:41:49

zltzlt 发表于 2020-2-24 09:40
第一句语法有误

分号写成了逗号

zltzlt 发表于 2020-2-24 09:45:41

为什么不用 for 循环呢{:10_327:}

for f in range(1, 10):
    for s in range(10):
      for t in range(10):
            i = int(str(f) + str(s) + str(t))
            if i == (f ** 3 + s ** 3 + t ** 3):
                print(i, end=' ')

一个账号 发表于 2020-2-24 09:51:52

为什么不用 for 循环呢?

import math
for i in range(100, 1000):
    num = list(str(i))
    num =
    if math.pow(num, 3) + math.pow(num, 3) + math.pow(num, 3) == i:
      print(i, "是水仙花数!")

蓝色忘忧草 发表于 2020-2-24 09:58:29

一个关于这个答案的老帖,解释了答案是什么原理

飞天大猫 发表于 2020-2-24 11:33:52

语法错了好多

零零零909 发表于 2020-2-24 12:29:11

一个账号 发表于 2020-2-24 09:34
能不能把答案贴上来?

题目是
编写一个程序,求 100~999 之间的所有水仙花数。
这是答案:
for i in range(100, 1000):
    sum = 0
    temp = i
    while temp:
      sum = sum + (temp%10) ** 3
      temp //= 10         # 注意这里要使用地板除哦~
    if sum == i:
      print(i)

一个账号 发表于 2020-2-24 12:30:09

零零零909 发表于 2020-2-24 12:29
题目是
编写一个程序,求 100~999 之间的所有水仙花数。
这是答案:

看不懂吗?

sssuhl 发表于 2020-2-24 19:09:16

a = 100
while a <= 999:
    x = a // 100
    y = a % 100 // 10
    z = a %100 %10
    if x**3 + y**3 + z**3 == a:   
      print (a)
    a += 1

zltzlt 发表于 2020-3-3 13:23:22

@不二如是
页: [1]
查看完整版本: 水仙花那道题!!!