题目链接:
https://pintia.cn/problem-sets/994805260223102976/problems/994805260583813120
AC代码:
#include <iostream>
#include <string>
using namespace std;
int main(){
string a;
int n;
cin>>a>>n;
while(--n){
string ans;
char c=a[0];
int cnt=0;
for(int i=0;i<a.size();i++){
if(a[i]==c)cnt++;
else{
ans+=c;
ans+=cnt+'0';
c=a[i];
cnt=1;
}
}
if(cnt>0){
ans+=c;
ans+=cnt+'0';
}
a=ans;
}
cout<<a<<endl;
return 0;
}
#include <iostream>
#include <cstdio>
#include <string>
using namespace std;
string lasseq(string s){
string res;
int len=s.size(),i=0;
while(i<len){
res+=s[i];
int j=i;
while(j<len&&s[i]==s[j])j++;
res+=to_string(j-i);
i=j;
}
return res;
}
int main(){
int d,n;
scanf("%d%d",&d,&n);
string res(1,'0'+d);
while(--n){//n--会出现错误,--n则不会
//序列的第 n+1 项是对第 n 项的描述
res=lasseq(res);
}
cout<<res<<endl;
return 0;
}