|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
x=0;y=0;z=0 # z:百位 y:十位 x:个位
for t in range(100,1000):
z=(t//100)
y=(t-z*100)%10
x=(t-z*100-y*10)
if(t==x**3+y**3+z**3):
print("水仙花数为:", t, "")
哪里弄错了
方法一:
- for i in range(100,500):
- a = (i //100)
- b = ((i - 100*a)//10)
- c = (i % 10)
- s = a**3+b**3+c**3
- if i == s:
- print(i)
复制代码
方法二:
- for i in range(1,10):
- for j in range(0,9):
- for k in range(0,9):
- if i*100+j*10+k==i**3+j**3+k**3:
- print(i*100+j*10+k)
复制代码
方法三(标准答案):
- for i in range(100, 1000):#遍历100到1000所有整数
- sum = 0 #定义求和变量,初值为0
- temp = i
- while temp:#当i得值不等于0时,一直循环
- sum = sum + (temp%10) ** 3 #temp取余10得到最后一位的数值,sum等于temp各位数之和
- temp //= 10 # 注意这里要使用地板除 这里得到temp的前两位
- if sum == i: #判断i是否等于其各位数的三次方之和
- print(i)#打印满足情况的i得值
复制代码
|
|