鱼C论坛

 找回密码
 立即注册
查看: 2369|回复: 6

[已解决]python作业第九讲动动手1

[复制链接]
发表于 2020-4-7 21:53:34 | 显示全部楼层 |阅读模式

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

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

x
我是零基础开始学的,不知道为什么会报错,以及我的方法是否可以修改?
题目是求100-1000的水仙花数,水仙花数为一个三位数等于其三位上各数字立方之和
for a,b,c in range (0,9)
if 100 * a + 10 * b + c == a ** 3 + b ** 3 + c ** 3
    print(100 * a + 10 * b + c)
最佳答案
2020-4-7 22:46:06
这个思路也不错,直接,主要注意循环要进行三次,才能读取所有三位数,其次是range范围,a要从1到10,世界取值就是1-9, 排除了0,也就是排除了1位数和2位数,这样才符合要求,其他的要0-10,实际取值0-9才算完整。
  1. for a in range(1,10):
  2.     for b in range(0,10):
  3.         for c in range(0,10):
  4.                 if 100 * a + 10 * b + c == a ** 3 + b ** 3 + c ** 3:
  5.                     print(100 * a + 10 * b + c)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-4-7 21:58:05 | 显示全部楼层
  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-4-7 22:00:57 | 显示全部楼层
for a,b,c in range(0,9)
并不能分别将abc赋值为0-9的数,需要三个循环,依次
for a in range(9):
    for b in range(9):
        for c in range(9):
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-7 22:28:56 | 显示全部楼层
for i in range(100,1000):
        if (i//100)**3+((i%100)//10)**3+(i%10)**3 == i:
                print (i)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-7 22:31:27 | 显示全部楼层
旧梦重拾 发表于 2020-4-7 22:28
for i in range(100,1000):
        if (i//100)**3+((i%100)//10)**3+(i%10)**3 == i:
                print (i)

i//100计算出百位数字,i%100取余后再//10取整得到十位数,i%10得到个位数,然后在判断他们的三次方是否等于i
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-7 22:46:06 | 显示全部楼层    本楼为最佳答案   
这个思路也不错,直接,主要注意循环要进行三次,才能读取所有三位数,其次是range范围,a要从1到10,世界取值就是1-9, 排除了0,也就是排除了1位数和2位数,这样才符合要求,其他的要0-10,实际取值0-9才算完整。
  1. for a in range(1,10):
  2.     for b in range(0,10):
  3.         for c in range(0,10):
  4.                 if 100 * a + 10 * b + c == a ** 3 + b ** 3 + c ** 3:
  5.                     print(100 * a + 10 * b + c)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-4-8 18:47:01 | 显示全部楼层
多谢指教
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-30 15:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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