解题思路:
本题的思路并不难,纸上都能做出来,但用代码实现就很抽象

可以分为几步

  1. 获取初始字符串c(很简单的,%s就行)和变换次数n

  2. 创建循环1,循环内的任务是每次都把上次得到的字符串“解释”一次然后赋给c;

  3. 循环1内部创建一个循环2,任务是将的到的待解释字符串c复制到c1中,并同时在末尾加上一个结束标志‘\0’;//亦用strcpy和strlen函数简单实现

  4. 循环1内部创建一个循环3,任务是将字符串c1解释一次后复制到c中;

  5. 循环3内部创建一个循环4,任务是将依次记录字符串c1中某个字符的出现次数;

  6. 当上述的循环全部完成后,字符串c即是我们需要的代码

参考代码:

#include<stdio.h>

#include<string.h>

int main() {

char c[10001],c1[10001];

int n,j=0,k=0;//j操控c1;k操控c

scanf("%s\n%d",c,&n);

while(n--) {

//循环1

j=0;

for(int l=0; l<strlen(c); ++l) {

//循环2

c1[l]=c[l];

c1[l+1]='\0';

}

/*strcpy和strlen函数组合也可以实现上述循环的功能

strcpy(c1,c);

c1[strlen(c1)]=='\0';

*/

k=0;

while(1) {

//循环3

int len=0;

char flag=c1[j];

if(flag=='\0') break;

while(1) {

//循环4

if(c1[j++]==flag) len++;

else {

--j;

break;

}

}

c[k++]='0'+len;

c[k++]=flag;

}

}

puts(c);

return 0;

}


点赞(0)
 

0.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论