数字之和与它的取反可以被它们之间的差(绝对值)整除。比如 45 这个数字 (45+54)%|45-54| == 0,要求时输出第满足条件的第 n 个数字的值. 我用下面的代码实现了但是速度很慢,有什么办法可以优化么?

2020-06-15 21:23:05 +08:00
 CupCupFun
```python
def sum_dif_rev(n):
#反转数字
def revers_num(num):
l = list(str(num))
l.reverse()
return int(''.join(l))
times = 0
i = 45
while True:
if abs(i-revers_num(i)) == 0:
i = i+1
continue
if (i + revers_num(i))%(abs(i-revers_num(i))) == 0:
times = times + 1
#输出第 n 个数字的值
if times == n:
return i
i = i+1
```
1173 次点击
所在节点    Python
2 条回复
CupCupFun
2020-06-15 21:26:40 +08:00
突然发现格式有问题,编辑的时候有缩进的,是一定要用 md 编辑才能正确显示缩进么?
necomancer
2020-06-16 04:01:14 +08:00
def nextNum():
....i = 0
....while True:
........inv = int(str(i)[::-1])
........if i != inv and ((i+inv) % (i-inv) ==0):
............yield i
........i += 1

for i, num in enumerate(nextNum()):
....if i == n: # stop at nth
........break
....print(num)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/681829

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX