//记得特判最后一位;;;;
(拉低通过率了,对不起* _ */ T v T)
题目描述
从 X 星截获一份电码,是一些数字,如下:
13
1113
3113
132113
1113122113
....
YY 博士经彻夜研究,发现了规律:
第一行的数字随便是什么,以后每一行都是对上一行“读出来”。
比如第 2 行,是对第 1 行的描述,意思是:1 个 1,1 个 3,所以是:1113。
第 3 行,意思是:3 个 1,1 个 3,所以是:3113。
请你编写一个程序,可以从初始数字开始,连续进行这样的变换。
样例
5
7
13211321322115
算法1
(暴力枚举) $O(m^n)$
时间复杂度
参考文献
C++ 代码
#include<stdio.h>
int n,k=0,m=0,S=0,c=1;
char s[100000];
int a[100000],b[100000];
int main()
{
scanf("%s %d",&s,&n);
for(int i=0;s[i]!='\0';i++)
{
a[i]=s[i]-'0';
m=i+1;
}
// printf("%d",m);
while(n--)
{
k=0;
for(int i=0;i<m;i++)
{
if(a[i]!=a[i+1]||i==m-1)
{
b[k++]=c;
b[k++]=a[i];
S=k;
c=1;
}
else c++;
}
for(int i=0;i<S;i++) a[i]=b[i];
m=S;
}
for(int i=0;i<m;i++) printf("%d",a[i]);
return 0;
}