1084 外观数列

题目

 

 

 题意分析:

第一项 为d;

第二项 是对第一项的描述,描述形式为 第一项有1个d,所以第二项为 d1;

第三项 是对第二项的描述,描述形式为 第二项有1个d,1个1,所以第三项为d1  11;

第四项 是对第三项的描述,描述形式为 第三项有1个d,3个1,所以第四项为d1 13;

第五项 是对第四项的描述,描述形式为 第四项有1个d,2个1,1个3,所以第五项为 d1 12 31;

第六项 是对第五项的描述,描述形式为 第五项有1个d,2个1,  1个2,1个3,1个1,所以第六项 为 d1 12 21 31 11;

依次类推。

 1 #include<iostream>
 2 using namespace std;
 3 
 4 int main() {
 5     int n;
 6     string d;
 7     cin>>d>>n;
 8     for(int i = 1; i < n;++i) {
 9         string temp;
10         for(int i = 0; i < d.size(); ++i) {
11             int cnt = 1;
12             while(i+1 < d.size() && d[i] == d[i+1]) {//统计连续相同数字的个数 
13                 cnt++;
14                 i++;
15             }
16             temp += d[i];
17             temp += cnt +'0';
18         }
19         d = temp;
20     }
21     printf("%s\n",d.c_str());
22     return 0;
23 }

 

posted @ 2020-02-26 09:29  tangq123  阅读(181)  评论(0编辑  收藏  举报