判断是否聚合数

判断是否聚合数

by 伍雪颖

#include <iostream>
#include <sstream>
#include <string>
#include <cstdlib>
using namespace std;

bool match(int i,int j,string text)
{
    string first = text.substr(0,i);
    string second = text.substr(i,j);
    string str = "";
    str += first + second;
    while(str.length() < text.length())
    {
        long long th = atoll(first.c_@R_502_5310@)+atoll(second.c_@R_502_5310@);
        stringstream ss;
        string third = "";
        ss << th;
        ss >> third;
        str += third;
        first = second;
        second = third;
    }
    return str.length()==text.length() && str == text;
}

bool isAggregatednum(string text)
{
    int len = text.length()/2;
    for(int i=1; i<=len; ++i)
        for(int j=1; j<=len; ++j)
            if(match(i,j,text))
                return true;
    return false;
}

int main()
{
    string s = "1111111111111111111111111112222222222222222222222222223333333333333333333333";
    cout << isAggregatednum(s) << endl;
    return 0;
}
match方法里的运算没搞懂!- -

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...