2016年蓝桥杯决赛 奇怪的数列
2017-05-12 09:27
33 查看
标题:奇怪的数列
从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
资源约定:
峰值内存消耗(含虚拟机) < 512M
CPU消耗 < 1000ms
请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
注意:不要使用package语句。不要使用jdk1.7及以上版本的特性。
注意:主类的名字必须是:Main,否则按无效代码处理。
public class _奇怪的数列 {
static int n;//代表总共执行多少次
static char[] stt;//将输入的数值用数组存储
static String s="";
public static void main(String[] args) {
Scanner sca=new Scanner(System.in);
stt=sca.next().toCharArray();
n=sca.nextInt();
for(int i=1;i<=n;i++){
f(stt);
stt=s.toCharArray();
}
System.out.println(s);
}
private static void f(char[] stt2) {
// TODO Auto-generated method stub
s="";
int cishu=0;
char temp=stt2[0];
int k=0;
for (; k< stt2.length; k++) {
if(temp==stt2[k]){
cishu+=1;
if(k==stt2.length-1){
s=s+""+cishu+temp;
break;
}
}else{
s=s+""+cishu+temp;
cishu=0;
temp=stt2[k];
k-=1;;
}
}
}
从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
资源约定:
峰值内存消耗(含虚拟机) < 512M
CPU消耗 < 1000ms
请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
注意:不要使用package语句。不要使用jdk1.7及以上版本的特性。
注意:主类的名字必须是:Main,否则按无效代码处理。
public class _奇怪的数列 {
static int n;//代表总共执行多少次
static char[] stt;//将输入的数值用数组存储
static String s="";
public static void main(String[] args) {
Scanner sca=new Scanner(System.in);
stt=sca.next().toCharArray();
n=sca.nextInt();
for(int i=1;i<=n;i++){
f(stt);
stt=s.toCharArray();
}
System.out.println(s);
}
private static void f(char[] stt2) {
// TODO Auto-generated method stub
s="";
int cishu=0;
char temp=stt2[0];
int k=0;
for (; k< stt2.length; k++) {
if(temp==stt2[k]){
cishu+=1;
if(k==stt2.length-1){
s=s+""+cishu+temp;
break;
}
}else{
s=s+""+cishu+temp;
cishu=0;
temp=stt2[k];
k-=1;;
}
}
}
相关文章推荐
- 蓝桥杯 第六届决赛 奇怪的数列 JAVA
- 蓝桥杯之奇怪的数列
- 蓝桥决赛---奇怪的数列
- 蓝桥杯第六届国赛JAVA真题----奇怪的数列
- 打靶蓝桥杯-2016年java-B组决赛
- 2016年蓝桥杯决赛第二题凑平方数
- 2016年蓝桥杯决赛 机器人塔(超时)
- 蓝桥杯历届-奇怪的数列
- 2016年第七届蓝桥杯决赛心得
- 2016年蓝桥杯决赛 凑平方数
- 2016年蓝桥杯决赛 一步之遥
- 2016年 蓝桥杯决赛体验
- 蓝桥杯——奇怪的数列
- java 蓝桥杯 奇怪的数列
- 蓝桥杯 表格计算 2016年第六届蓝桥杯javaB组决赛第五题
- 【蓝桥杯】奇怪的数列
- 取字符,第二届蓝桥杯Java大赛决赛题
- 第三届蓝桥杯Java高职组决赛第四题
- 蓝桥杯Problem B: 奇怪的分式
- (蓝桥杯第五届B组)奇怪的分式 (暴力 简单)