鱼C论坛

 找回密码
 立即注册
查看: 2592|回复: 13

[已解决]水仙花那道题!!!

[复制链接]
发表于 2020-2-24 09:28:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
大佬们,答案咋看懂的啊,有一说一我是数学看不懂。 嘤嘤嘤!还有这是我自己瞎写的,哪错了呢?
  1. f = int(1) , s = int(0) , t = int(0)
  2. i = str('f' + 's' + 't')
  3. while i < 1000:
  4.   i = str('f' + 's' + 't')
  5.   if i == (f**3) + (s**3) + (t**3):
  6.     print (i,end = ' ' )
  7.   if t <= 9:
  8.     t += 1
  9. if t == 10:
  10.     t = 0
  11.     s += 1
  12. if s <= 9:
  13.     s += 1
  14. else :
  15.     s = 0
  16.     f += 1
  17.          
复制代码
最佳答案
2020-2-24 09:45:41
为什么不用 for 循环呢

  1. for f in range(1, 10):
  2.     for s in range(10):
  3.         for t in range(10):
  4.             i = int(str(f) + str(s) + str(t))
  5.             if i == (f ** 3 + s ** 3 + t ** 3):
  6.                 print(i, end=' ')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-24 09:34:37 | 显示全部楼层
本帖最后由 一个账号 于 2020-2-24 09:40 编辑

能不能把答案贴上来?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-24 09:36:09 | 显示全部楼层
能不能贴一下题目呢?或者说明一下你想实现什么效果。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-24 09:39:48 | 显示全部楼层
本帖最后由 一个账号 于 2020-2-24 09:41 编辑
蓝色忘忧草 发表于 2020-2-24 09:36
能不能贴一下题目呢?或者说明一下你想实现什么效果。


他要实现这种效果:

  1. 153 是水仙花数!
  2. 370 是水仙花数!
  3. 371 是水仙花数!
  4. 407 是水仙花数!
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-24 09:40:02 | 显示全部楼层
第一句语法有误
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-24 09:41:49 | 显示全部楼层
zltzlt 发表于 2020-2-24 09:40
第一句语法有误

分号写成了逗号
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-24 09:45:41 | 显示全部楼层    本楼为最佳答案   
为什么不用 for 循环呢

  1. for f in range(1, 10):
  2.     for s in range(10):
  3.         for t in range(10):
  4.             i = int(str(f) + str(s) + str(t))
  5.             if i == (f ** 3 + s ** 3 + t ** 3):
  6.                 print(i, end=' ')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-24 09:51:52 | 显示全部楼层
为什么不用 for 循环呢?

  1. import math
  2. for i in range(100, 1000):
  3.     num = list(str(i))
  4.     num = [int(each) for each in num]
  5.     if math.pow(num[0], 3) + math.pow(num[1], 3) + math.pow(num[2], 3) == i:
  6.         print(i, "是水仙花数!")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-2-24 09:58:29 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-24 11:33:52 | 显示全部楼层
语法错了好多
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-24 12:29:11 | 显示全部楼层
一个账号 发表于 2020-2-24 09:34
能不能把答案贴上来?

题目是
编写一个程序,求 100~999 之间的所有水仙花数。
这是答案:
  1. for i in range(100, 1000):
  2.     sum = 0
  3.     temp = i
  4.     while temp:
  5.         sum = sum + (temp%10) ** 3
  6.         temp //= 10         # 注意这里要使用地板除哦~
  7.     if sum == i:
  8.         print(i)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

看不懂吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-3 13:23:22 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-1 12:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表