题目链接:PAT【甲级】1140
题目简述:给两个数字D
和n
,第⼀个序列是D
,后⼀个序列描述前⼀个序列的所有数字以及这个数字出现的次数,⽐如D出现了1
次,那么第⼆个序列就是D1
,对于第⼆个序列D1
,第三个序列这样描述: D
出现1
次,1
出现1
次,所以是D111
……以此类推,输出第n
个序列
#include<bits/stdc++.h>
using namespace std;
int main(){
string s1, s2;
int N;
cin >> s1 >> N;
for (int i = 0; i < N - 1;i++){
s2 = s1;
s1.clear();
int index = 1;
for (int j = 0; j < s2.size();j++){
if(s2[j] == s2[j + 1])
index++;
else{
s1 += s2[j] + to_string(index);
index = 1;
}
}
}
printf("%s", s1.c_str());
return 0;
}
我以为的是我以为的,本来会觉得爆的。但又想不出好的办法,直接撸,竟然能过。