|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
这个是我本来的想法
- while True:
- import random
- a = random.choice([1,2,3,4,5,6,7,8,9])
- b = random.choice([0,1,2,3,4,5,6,7,8,9])
- c = random.choice([0,1,2,3,4,5,6,7,8,9])
- for num in range(100,1000):
- if num != 100*a + 10*b + c:
- continue
-
- if num == a**3 + b**3 + c**3:
- print(num)
复制代码
然后这里的 num 能不能让它只打出答案 然后答案不要一直打印
看到它一直在打印重复的答案 我还以为我弄错了
然后是018讲的作业的答案 我没有完全理解
- for i in range(100, 1000):
- sum = 0
- temp = i
- while temp:
- sum = sum + (temp % 10) ** 3
- temp //= 10
- if sum == i:
- print(i)
复制代码
这个 sum = sum + (temp % 10)**3
temp //= 10
就是这个没有理解
求助各位大佬
本帖最后由 isdkz 于 2022-4-8 12:59 编辑
第一:你那个一直打印重复的答案是因为你用了随机,
随机出重复的很正常,这种情况不是测什么概率的你就不应该用随机,得用枚举,
第二:答案里的是在三位数中枚举,temp % 10 可以得到最后一位数,
而 temp %10 想要得到它的高位数就得把高位往低位挪,
temp //= 10 可以丢弃最后一位数,这样高位自然就可以往低位挪了
|
|