我的字符串是“ 2358132235”。我需要确定这是否是字符串数字是否在进行算术级数运算。我可以一直执行到8点,但是当我达到13岁时,我不知道头在这里可以处理多位数字。有人帮忙。谢谢。

私人静态布尔型Arthmetic(String s){
        int i = 0;

for(i = 0 ; i <s.length()-2; i++)
        {
            int c = s.charAt(i)-'0';
            int c1 = s.charAt(i+1)-'0' ;
            int c2 = s.charAt(i+2)-'0' ;
            if(c + c1 != c2)
            {
                return false;
            }
        }

            return true;

    }


我知道此代码是错误的,因为它只能工作到8

最佳答案

为了解决这个问题,您将编写一个解析器,检查每个可能的子字符串是否可以是级数。我们假设进展总是正的。

让我们通过使用带有参考字符串“ 235813”的简单版本的示例进行演示。解析器可能会构建以下标记:


["2"]["2", "3"]["2", "3", "5"];从5-3开始拒绝!= 3-2
["2"]["2", "35"]["2", "35", "81"];自81-35开始拒绝!= 35-2 [注意:我们未使用["2", "35", "8"],因为我们假设进度始终为正数]
["2"]["2", "358"];拒绝,因为其余数字的位数不能大于358
["23"] ["23", "58"];拒绝,因为其余数字的位数不能大于58


没有更多可能的子字符串用于算术级数。因此,此字符串不是算术级数。您的解析器还可以将相同的逻辑应用于更长的参考字符串。

关于java - 如何找出字串是否为算术级数(AP),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51461548/

10-09 02:58