题目描述

从X星截获一份电码,是一些数字,如下:
13
1113
3113
132113
1113122113

YY博士经彻夜研究,发现了规律:
第一行的数字随便是什么,以后每一行都是对上一行“读出来”
比如第2行,是对第1行的描述,意思是:1个1,1个3,所以是:1113
第3行,意思是:3个1,1个3,所以是:3113

请你编写一个程序,可以从初始数字开始,连续进行这样的变换。

输入

第一行输入一个数字组成的串,不超过100位
第二行,一个数字n,表示需要你连续变换多少次,n不超过20

输出一个串,表示最后一次变换完的结果。

输出

输出一个串,表示最后一次变换完的结果。

样例输入

5
7

样例输出

13211321322115

c语言AC代码

#include <stdio.h>
#include <string.h>
char a[10001],b[10001],c[10001];
int n,cou=0,cou1=0,s=0,j;
char flag;
int main()
{
	scanf("%s%d",&a,&n);
	int i;
	while(n--)
	{
		flag=a[0];//计数的标志 
		cou=0;
		for(i=0;i<=strlen(a);i++)
			{
				if(a[i]==flag)	// 该字符出现的次数 
					{
						cou++;
					}
				else {
					s=0;
					strcpy(c,"");
					while(cou!=0)	//次数转换为字符,还是倒叙 
						{
							c[s]='0'+cou%10;
							s++;
							cou=cou/10;
						}
					for(j=s-1;j>=0;j--)	//将从a转换的字符都放到b中 
						{
							b[cou1]=c[j];	//之前是倒叙 
							cou1++;
						}
					b[cou1]=flag;	//标志放入到b中 
					cou1++;
					flag=a[i];
					cou=1;
				}
			}
	strcpy(a,b);	//转换一遍的b复制到a中 
	strcpy(b,"");
	cou1=0;
	}
	printf("%s",a);
	return 0;
}
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐