鱼C论坛

 找回密码
 立即注册
查看: 2991|回复: 9

[已解决]二问“水仙花”数

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

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

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

x
题目:如果一个3位数等于其各位数字的立方和,则称这个数为水仙花数。例如153 = 1^3+5^3+3^3,因此153是一个水仙花数。编写一个程序,找出所有的水仙花数。

问题一:我写的这个,报错。请问为何啊?

import random
a = 100*b+10*c+d
for b = random.randint[0,9]:
    for c = random.randint[0,9]:
        for d = random.randint[0,9]:
            if (b^3+c^3+d^3)==a:
                print (a)


问题二:以下是正确答案之一,请问这里是如何确保a,b,c为整数的?
for a in range(1, 10):
    for b in range(10):
        for c in range(10):
            d = 100*a+10*b+c
            if d == (a**3 + b**3 + c**3):
                print (d)
最佳答案
2020-9-22 20:54:16
Peteryo01223 发表于 2020-9-21 14:38
试了试。但看不懂报错的内容

萌新见解:
a=100*b+10*c+d中b,c,d相当于还没有定义,想用需放在定义b,c,d后面。
我尝试了下for i in 5:;print(i),结果报错:说明for b in random.randint(0,9)不能这么用,random.randint(0,9)产生的是一个随机0-9的整数。
random.randint(0,10)产生0-10,不包括10的随机整数,注意是(),而不是[]
python的幂符号是**,不是^
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-9-18 10:40:52 From FishC Mobile | 显示全部楼层
你这,for后跟个赋值语句就离谱,语法错了
第二,for与in搭配,遍历0到9的所有整数,别问,问就是乌龟屁股
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-9-18 10:42:26 | 显示全部楼层
1. 你的abc未定义就使用,for后面要跟一个容器,而你跟的是一个数字
2. range生成的就是整数
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-18 14:52:51 | 显示全部楼层
BngThea 发表于 2020-9-18 10:42
1. 你的abc未定义就使用,for后面要跟一个容器,而你跟的是一个数字
2. range生成的就是整数

那么请问,如下写,可以么?
import random
a = 100*b+10*c+d
for b in random.randint[0,9]:
    for c in random.randint[0,9]:
        for d in random.randint[0,9]:
            if a == (b^3)+(c^3)+(d^3):
                print (a)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-21 09:35:03 | 显示全部楼层
Peteryo01223 发表于 2020-9-18 14:52
那么请问,如下写,可以么?
import random
a = 100*b+10*c+d

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

使用道具 举报

 楼主| 发表于 2020-9-21 11:27:21 | 显示全部楼层

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

使用道具 举报

发表于 2020-9-21 13:14:22 | 显示全部楼层

你自己运行试试看报什么错
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-21 14:38:24 | 显示全部楼层
试了试。但看不懂报错的内容
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-22 20:54:16 | 显示全部楼层    本楼为最佳答案   
Peteryo01223 发表于 2020-9-21 14:38
试了试。但看不懂报错的内容

萌新见解:
a=100*b+10*c+d中b,c,d相当于还没有定义,想用需放在定义b,c,d后面。
我尝试了下for i in 5:;print(i),结果报错:说明for b in random.randint(0,9)不能这么用,random.randint(0,9)产生的是一个随机0-9的整数。
random.randint(0,10)产生0-10,不包括10的随机整数,注意是(),而不是[]
python的幂符号是**,不是^
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-23 17:26:30 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-27 19:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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