Peteryo01223 发表于 2020-9-18 10:34:21

二问“水仙花”数

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

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

import random
a = 100*b+10*c+d
for b = random.randint:
    for c = random.randint:
      for d = random.randint:
            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-18 10:40:52

你这,for后跟个赋值语句就离谱,语法错了
第二,for与in搭配,遍历0到9的所有整数,别问,问就是乌龟屁股

BngThea 发表于 2020-9-18 10:42:26

1. 你的abc未定义就使用,for后面要跟一个容器,而你跟的是一个数字
2. range生成的就是整数

Peteryo01223 发表于 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:
    for c in random.randint:
      for d in random.randint:
            if a == (b^3)+(c^3)+(d^3):
                print (a)

BngThea 发表于 2020-9-21 09:35:03

Peteryo01223 发表于 2020-9-18 14:52
那么请问,如下写,可以么?
import random
a = 100*b+10*c+d


不行

Peteryo01223 发表于 2020-9-21 11:27:21

BngThea 发表于 2020-9-21 09:35
不行

为何呢?

BngThea 发表于 2020-9-21 13:14:22

Peteryo01223 发表于 2020-9-21 11:27
为何呢?

你自己运行试试看报什么错

Peteryo01223 发表于 2020-9-21 14:38:24

试了试。但看不懂报错的内容

zer0leng 发表于 2020-9-22 20:54:16

Peteryo01223 发表于 2020-9-21 14:38
试了试。但看不懂报错的内容

萌新见解:{:10_245:}
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的幂符号是**,不是^

白目丸子 发表于 2020-9-23 17:26:30

{:5_102:}
页: [1]
查看完整版本: 二问“水仙花”数