从X星截获一份电码,是一些数字,
如下:
13
1113
3113
132113
1113122113....
YY博士经彻夜研究,发现了规律:
第一行的数字随便是什么,以后每一行都是对上一行“读出来”比如第2行,是对第1行的描述,意思是:1个1,1个3,
如下:
13
1113
3113
132113
1113122113....
YY博士经彻夜研究,发现了规律:
第一行的数字随便是什么,以后每一行都是对上一行“读出来”比如第2行,是对第1行的描述,意思是:1个1,1个3,
所以是:1113第3行,意思是:3个1,1个3,所以是:3113请你编写一个程序,可以从初始数字开始,连续进行这样的变换。
输入:
5
7
输出:13211321322115
import java.util.*;
public class Main
{
static String str="";
static int count;
public static void main(String[] args)
{
Scanner cn=new Scanner(System.in);
str=cn.nextLine();
count=cn.nextInt();
for(int i=0;i<count;i++)
{
String str1=str; //暂时赋值给str1 进行操作
kk(str1);
}
System.out.println(str);
}
public static void kk(String str1 )
{
int u=0,flag=0,h=1; //其中flag为识别标志 例如1113 起到识别1和3的作用 h是计数 有几个1 几个3
char q=' ';
String str2="";
while(u<str1.length())
{
if(flag==0)
{
q=str1.charAt(u);
flag=1;
u++;
}
else
{
if(q==str1.charAt(u))
{
h++;u++;
}
else //假如初始为1113 这里就开始更改flag 开始识别3
{
str2=str2+h+q;
flag=0;
h=1;
}
}
}
str2=str2+h+q;
str=str2; //重新赋值 进行下一次循环
}
}