鱼C论坛

 找回密码
 立即注册
查看: 413|回复: 5

[已解决]求解这段代码,还有没有其他的表示方法来求这个数?

[复制链接]
最佳答案
0 
发表于 2017-12-16 22:52:35 | 显示全部楼层 |阅读模式

马上注册加入鱼C,享用更多服务吧^_^

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

x
微信图片_20171216225116.png
最佳答案
2017-12-17 09:43:40
  1. import math

  2. for i in range(100, 1000):
  3.     x = math.floor(i/100)  #获得百位数
  4.     y = math.floor((i - x*100)/10)  #获得十位数
  5.     z = i - math.floor(i/10) *10  #获得个位数
  6.     if i == x**3 + y**3 + z**3:
  7.         print(i, end=', ')
复制代码
最佳答案
334 
发表于 2017-12-17 09:43:40 | 显示全部楼层    本楼为最佳答案   
  1. import math

  2. for i in range(100, 1000):
  3.     x = math.floor(i/100)  #获得百位数
  4.     y = math.floor((i - x*100)/10)  #获得十位数
  5.     z = i - math.floor(i/10) *10  #获得个位数
  6.     if i == x**3 + y**3 + z**3:
  7.         print(i, end=', ')
复制代码
最佳答案
0 
 楼主| 发表于 2017-12-17 10:11:34 | 显示全部楼层

谢谢~我看懂了
在上图中
sum = sum + (temp%10)**3
temp//=10
要怎么理解
最佳答案
190 
发表于 2017-12-17 10:17:01 | 显示全部楼层
sunflower-柠檬 发表于 2017-12-17 10:11
谢谢~我看懂了
在上图中
sum = sum + (temp%10)**3

sum 就是该数 个、十。百位数的 3 次方的和, temp // = 10, 就是去掉 temp 的最后一位数。
比如temp = 153 ,第一次循环, sum = 0 + 3**3, temp = 15;
第二次循环, sum = 3**3 + 5**3, temp = 1;
第三次循环,sum = 3**3+5**3+1**3, temp = 0;
因为temp = 0, 跳出循环
最佳答案
0 
发表于 2017-12-17 21:51:22 | 显示全部楼层
for i in range(100,1001):
    o = list(str(i))
    a = int(o[0])
    b = int(o[1])
    c = int(o[2])
    if a**3 + b**3 + c**3 == i:
        print(i)
最佳答案
32 
发表于 2017-12-17 23:15:49 | 显示全部楼层
for i in range (100,1000):
    a = list(str(i))
    c = 0
    for d in range(len(a)):
        c += int(a[d])**3      
    if c == i:
        print(i)

任意选择范围
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐上一条 /1 下一条

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号 )

GMT+8, 2018-7-18 12:38

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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