二问“水仙花”数
题目:如果一个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) 你这,for后跟个赋值语句就离谱,语法错了
第二,for与in搭配,遍历0到9的所有整数,别问,问就是乌龟屁股 1. 你的abc未定义就使用,for后面要跟一个容器,而你跟的是一个数字
2. range生成的就是整数 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) Peteryo01223 发表于 2020-9-18 14:52
那么请问,如下写,可以么?
import random
a = 100*b+10*c+d
不行 BngThea 发表于 2020-9-21 09:35
不行
为何呢? Peteryo01223 发表于 2020-9-21 11:27
为何呢?
你自己运行试试看报什么错 试了试。但看不懂报错的内容 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的幂符号是**,不是^ {:5_102:}
页:
[1]