问题标签 [lychrel-numbers]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 我的 Lychrel 号码查找器出了什么问题?
我正在尝试解决Project Euler 问题 #55,其中指出:
如果我们取 47,反转和相加,47 + 74 = 121,这是回文。
并非所有数字都能如此迅速地产生回文。例如,
349 + 943 = 1292, 1292 + 2921 = 4213, 4213 + 3124 = 7337
也就是说,349 需要 3 次迭代才能得出回文。
尽管还没有人证明这一点,但人们认为有些数字,比如 196,永远不会产生回文。一个永远不会通过反向和加法过程形成回文的数字称为 Lychrel 数。由于这些数字的理论性质,并且为了这个问题的目的,我们将假设一个数字是 Lychrel,直到证明不是这样。此外,您还知道,对于每一个低于一万的数字,它要么(i)在不到 50 次迭代中成为回文,要么(ii)到目前为止,没有人拥有所有的计算能力将其映射到回文。事实上,10677 是第一个被证明需要超过 50 次迭代才能产生回文的数字:4668731596684224866951378664(53 次迭代,28 位)。
令人惊讶的是,有回文数本身就是 Lychrel 数。第一个例子是 4994。
一万以下有多少个 Lychrel 数?
TL;DR:如果一个数字不是回文,则将其添加到自身的反面。仍然没有?重复。...50 次迭代后...这是一个 Lychrel 数。
我的代码:
它适用于 349(非 Lychrel)和 196(Lychrel)的测试用例,但 Project Euler 拒绝了我得到的答案。
我还没有解决这个问题,所以我更喜欢提示而不是直接解决方案。
我究竟做错了什么?
python - Lychrel 数算法
最近开始着迷于寻找 Lychrel 和回文数作为娱乐数学。
对于不知道的人,手动对号码执行此检查的过程如下。
- 让 x 是某个数字。
- 令 R(x) 为与 x 相对应的数字,倒写。
- 设 n = x + R(x)
- 如果 n == R(n),则返回
True
,否则False
。
重复直到获得n
新的直到。x
True
有什么方法可以在 Python 中实现自动化吗?我可以在哪里输入一个数字,它会告诉我它的反向总和是否是回文。此外,我想看看达到这个数字需要多少步骤。
例子:
设 x 为 79。79 + 97 是 176,这不是回文,所以我们得到False
。
设 x 现在是 176。176 + 671 是 847,这不是回文,所以我们得到False
。
我们继续:
- 847 + 748 == 1595
- 1595 + 5951 == 7546
- 7546 + 6457 == 14003
- 14003 + 30041 = 44044
这是我们最终遇到回文的地方。花了6个步骤。
go - Go 中的 Lychrel 数字与大图书馆
我正在尝试在 Go 中制作 Lychrel 数字程序,但遇到了一些麻烦。使用“math/big”库,并使用一些额外的打印语句进行调试,我的代码如下所示:
虽然没有大库的类似代码可以正常工作(保存最终的溢出错误),但这个版本不能。例如,当我做 lychrel(196) 时,我得到
我不知道哪里出了问题。我希望我没有错过一些愚蠢的东西,因为我整个上午都在试图让它发挥作用。
python - for 循环中的计数器总是打印 0
我需要检查一个数字是否是 Lychrel 数字,如果不打印循环直到它到达回文的次数,由于某种原因它总是打印 0
更新:感谢 Vova,代码现在可以正常工作。固定代码: