美文网首页
38.Count and Say

38.Count and Say

作者: 花落花开花满天 | 来源:发表于2018-10-29 16:55 被阅读0次

The count-and-say sequence is the sequence of integers with the first five terms as following:

1. 1

2.    11

3.    21

4.    1211

5.    111221

最开始不是很懂规律,后来才知道就是数一下前面相同数字的个数,比如5前面4的序列是1211,就是1个“1”,1个“2”,2个“1”,(不连续的不能合并),所以5的序列就是111221。

我使用了递归算法获取前一个数的序列,然后进行统计。

注意点:

1.判断递归的边界。

2.统计是判断序列的边界。

3.序列的类型为字符串。

代码:

stringcountAndSay(intn)

{

    if(n==1)  //判断递归边界

        return"1";

    stringArray;

    Array="";

    intcount=1;

    stringres=countAndSay(n-1);

    cout<<"result="<

    for(inti=0;i

    {

        if(i==res.length()-1)  //判断序列边界

        {

            Array+=to_string(count);

            Array+=res[i];

            cout<

            returnArray;

        }

        else if(res[i]==res[i+1])  //统计相同的数字

        {

            count++;

            continue;

        }

        Array+=to_string(count);

        Array+=res[i];

        cout<

        count=1;

    }

    returnArray;

}

相关文章

网友评论

      本文标题:38.Count and Say

      本文链接:https://www.haomeiwen.com/subject/efzbtqtx.html