Friedman Number:如何使用Java解决?

4+

好吧,我们已经在我的姊妹博客(tellmehow.co)上了解了弗里德曼数。如果您想知道这个数字,请检查 给定博客.

让’移至弗里德曼数的配方

Friedman Number:如何使用Java解决?
Friedman Number:如何使用Java解决?

弗里德曼数背后的概念是什么?

第一次听时,这个数字有点复杂。但是今天,我将分享我们用来查找给定数字是否为弗里德曼数的真实概念/逻辑。

让’s为例:125是弗里德曼数。

步骤1:找到给定数字的排列

首先,我们必须找到给定数字的排列。因此,在这种情况下,125的排列将为[125,215,512]。那么如何找到给定字符串的排列呢?这是我们逻辑的第一个障碍。


上面的125号程序的输出为:

[125、521、215、512、251、152]

步骤2:为弗里德曼数创建表达式并对其求值

在下一步中,我们必须迭代Set数据并找到表达式并对其求值。

找到弗里德曼数的表达式并求值
找到弗里德曼数的表达式并求值

大学教师’不必担心,这是找到弗里德曼数的重要逻辑部分。在此步骤中,您必须创建具有给定排列数字的表达式。

(expression1符号expression2),即(1 + 25),(12-5),(12 ^ 5)等,然后对该表达式求值。那么下一步我们该怎么做?

我们将首先找到表达式1和表达式2。我们知道125的长度为3。因此对于第一个表达式,我们将给定的字符串从0子串为length-1。对于第二个表达式,将给定数据1的长度字符串化。

查找弗里德曼数的expression1和expression2
查找弗里德曼数的expression1和expression2

根据上面的陈述,表达式1将来自12即1、2、12、21、21,表达式2将来自25即2、5、25、52。

为了制作适当的表达式,我们必须在上述expression1和expression2之间添加符号(+,-,*,/,^)。为此,我们创建了一个符号数组。

步骤3:合并并生成有效的表达式

现在将我们所有在第2步中的讨论纳入讨论范围。


在第5行和第7行,我们分别找到了expression1和expression 2。然后在第9行的符号数组的另一个循环。

有关这三个递归循环生成的表达式,请参见第10行。现在我们必须找到生成的表达式是否有效。

步骤4:查找表达式是否有效

现在,我们将发现生成的表达式在Java中是否有效。


输出:

(1+25)

如果返回true,那么我们将评估给定的表达式。

步骤5:评估生成的表达式

查找Java中给定表达式字符串的输出


输出

(1 + 25)– 26

第6步:最后检查给定的数字并评估数字是否相同

现在使用上述表达式求值的输出检查给定的字符串,即125。如果两者相同,则该数字为弗里德曼数字,并且生成的表达式对该数字正确。

如果您要查找完整的工作源代码,请查找是否为弗里德曼编号,然后在给定链接处分叉我。

在Github上分叉给我

欢迎使用可以优化代码并以10位数字运行的新编码器。你接受我的挑战吗?评论我您的想法。

4+
概括
Friedman Number:如何使用Java解决?
文章名
Friedman Number:如何使用Java解决?
描述
弗里德曼数背后的概念是什么?第一次听时,这个数字有点复杂。查找给定的数字是否为弗里德曼数。
作者
发布者名称
达斯