#include <stdio.h>
#include <stdlib.h>
#include <cstring>
char* ReportedSequence(int n) {
char* result = (char*)malloc(60000 * sizeof(char));//定义一个字符串
result[0] = '1';//第一个数字为1
result[1] = '\0';//这个是标志着字符串结束
for (int j = 2; j <= n;j++) {
char temp[60000];//定义一个字符,暂存以读过的数字
int f = (int)strlen(result);//记录字符串初始长度
int t = 0, w = 0, s = 0;//t用来循环result,w记录相同字段有几个,s用来计算放入字符串temp中的位置
char c;
while (t<f) {
c = result[t];
while (result[t]==c) {//判断result中第t个元素是否与c相等
t++;//相等t++,判断下一个字符
w++;//记录当前字符个数
}
temp[s] = w + '0';//temp第s个位先赋值相同字符个数
s++;//s+1
temp[s] = c;//temp第s位放置字符c
s++;//s+1
w = 0;
}
temp[s] = '\0';//放结束标志
strcpy(result,temp);//赋值
}
return result;
}
int main() {
//ReportedSequence(4);
const char* str = ReportedSequence(5);//定义
printf("%s", str);
return 0;
}