您的位置:首页 > 编程语言 > Java开发

java 蓝桥杯 奇怪的数列

2017-03-03 11:15 232 查看
从X星截获一份电码,是一些数字,

如下:

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; //重新赋值 进行下一次循环

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息