第一层循环,用来循环计算第几个元素
第二层用来计算当前元素的下一个

#include<stdio.h>
#include<string.h>
char aaa[100000] = { '\0' };

int main() {
	int N; scanf("%c %d",&aaa[0], &N);
	for (int i = 2; i <= N; i++) {//第几个元素
		char bbb[100000] = { '\0' };					//创建空字符串,保存生成的下一个元素
		int b = 0, num = 0;
		for (int j = 0; aaa[j] != '\0'; j++) {			//计算一个元素
			if (aaa[j] == aaa[j + 1]) {					//重复什么都不干,就计数
				num++;
			}
			else {												//不重复,该输出了
				bbb[b++] = aaa[j];
				if (num == 0)								//就一个
					bbb[b++] = '0' + 1;
				else {											//重复
					int temp = num + 1;
					num = 0;
					bbb[b++] = temp % 10 + '0';
				}
			}
		}
		strcpy(aaa, bbb);								//将生成的元素复制到原始字符串
	}
	printf("%s", aaa);
	return 0;
}

相关文章:

  • 2022-12-23
  • 2021-08-24
  • 2021-11-09
  • 2021-09-14
  • 2022-12-23
  • 2022-12-23
  • 2021-08-26
  • 2021-09-21
猜你喜欢
  • 2022-01-07
  • 2021-10-14
  • 2021-04-18
  • 2022-12-23
  • 2021-09-15
  • 2021-11-28
  • 2021-05-25
相关资源
相似解决方案