版权声明:转载请注明出处 https://blog.csdn.net/chushoufengli/article/details/81194312
//将每个不同的字符存入,初始字符后面的个数为1,
//之后下一个时判断是否去前一个字符相同,相同则个数++;
//不同的将新字符存入,并且个数初始为1。
#include <cstdio>
#include <cstring>
int main() {
char str[50][10000] = {};
int D, N;
scanf("%d %d",&D,&N);
if(N == 1) {
printf("%d",D);
return 0;
}
sprintf(str[0],"%d",D);
for(int i=1; i<N; i++) {
int index = 0;
int len = strlen(str[i - 1]);
for(int j=0; j<len; j++) {
if(str[i - 1][j - 1] != str[i - 1][j] || j == 0) {
str[i][index++] = str[i - 1][j];
str[i][index++] = '1';
} else {
str[i][--index] = ((str[i][index] - '0') + 1) + '0'; ////int型转char型
index++;
}
}
if(i == N - 1) printf("%s\n",str[i]);
}
}
挂最后一个测试点(17'),待解决