加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

判断是否聚合数

发布时间:2020-12-13 22:48:11 所属栏目:百科 来源:网络整理
导读:判断是否聚合数 by 伍雪颖 #include iostream#include sstream#include string#include cstdlibusing 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 += fi

判断是否聚合数

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_str())+atoll(second.c_str());
        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 = "2222222222222222222222222112222222222222222222222222223333333333333333333333";
    cout << isAggregatedNum(s) << endl;
    return 0;
}
match方法里的运算没搞懂!- -

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读