在一次采访中,我被要求在PI的扩展中找到前9位数的回文。我不知道应该怎么做。在整个访谈期间,问题仍然存在于我的系统中,我无法正确回答要遵循的问题。
什么是最佳方式?
编辑:
寻找回文并不难,但我如何能够尽可能多地扩展PI。我已经尝试过Math.PI,我已经尝试过22/7,但没有任何东西可以提供我需要的东西。
答案 0 :(得分:2)
这里的“最佳”方式在很大程度上取决于计算Pi的算法的选择,假设您无法访问现成的任意数量的数字。
有许多无限和与pi相聚,每个都能够最终生成正确的数字,但是你必须使用一些允许无限精确浮点数或无限大整数的库。
之后,找到回文相对容易,因为您只需要比较第一个到第九个数字,第二个到第八个等等。
在这种情况下,魔鬼显然是收敛和用于近似Pi的。 其中一些列在维基百科页面上的Pi:http://en.wikipedia.org/wiki/Pi#Polygon_approximation_era
答案 1 :(得分:1)
首先,我会在pi中创建一个数字的子集并转换为字符串。
我会从中获取一个九个字符的子集字符串,然后将第一个字符与最后一个字符进行比较。如果匹配,则将字符2与8进行比较,依此类推。如果任何比较失败,则将9个字符串移动到下一个集合 - 按一个字符。
答案 2 :(得分:0)
我可能会指定将first index
值分配给first variable
并将ninth index
值分配给second variable
,然后查看它们是否相等。如果它们相等,我会将second index
值分配给first variable
并将eight index
值分配给second variable
,直到它们在中间位置相遇。如果他们在某个地方彼此不同,请为first variable
分配latest left side index
与[{1}}不同的值和right side index
的第二个变量值,然后重复此过程直到达到left side index + 8
职位。