标题:奇怪的数列

从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,否则按无效代码处理。

考察方向:字符串拼接,每次将计量数(初始为1,用于统计重复字符)与对应位的字符串拼接成新的字符串。

完整代码如下:

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);int cnt = 1;String str = in.next();int m = in.nextInt();while (m != 0) {String ss = "";for (int i = 0; i < str.length(); i++) {if (i+1 < str.length() && str.charAt(i) == str.charAt(i+1)) {cnt++;continue;}ss += cnt + "" + str.charAt(i) ;cnt = 1;}str = ss;m--;}System.out.println(str);}
}

递归解法:

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner  in = new Scanner(System.in);int n = in.nextInt();int m = in.nextInt();f(n+"", 0, m);}private static void f(String str, int num, int m) {if (num >= m) {System.out.println(str);return ;}StringBuffer   sb = new StringBuffer();int  cnt = 1 ;for (int i = 0; i < str.length()-1; i++) {if (str.charAt(i) != str.charAt(i+1)) {sb.append(cnt + "" + str.charAt(i));cnt = 1;}else {cnt++;}}sb.append(cnt + "" + str.charAt(str.length()-1));f(sb.toString(), num+1, m);}
}

蓝桥杯第六届国赛JAVA真题----奇怪的数列相关推荐

  1. 蓝桥杯第六届国赛JAVA真题----切开字符串

    标题:切开字符串 Pear有一个字符串,不过他希望把它切成两段. 这是一个长度为N(<=10^5)的字符串. Pear希望选择一个位置,把字符串不重复不遗漏地切成两段,长度分别是t和N-t(这两 ...

  2. 蓝桥杯第六届国赛JAVA真题----表格计算

    标题:表格计算 某次无聊中, atm 发现了一个很老的程序.这个程序的功能类似于 Excel ,它对一个表格进行操作. 不妨设表格有 n 行,每行有 m 个格子. 每个格子的内容可以是一个正整数,也可 ...

  3. 蓝桥杯第六届国赛JAVA真题----密文搜索

    标题:密文搜索 福尔摩斯从X星收到一份资料,全部是小写字母组成. 他的助手提供了另一份资料:许多长度为8的密码列表. 福尔摩斯发现,这些密码是被打乱后隐藏在先前那份资料中的. 请你编写一个程序,从第一 ...

  4. 蓝桥杯第七届国赛JAVA真题----平方末尾

    平方末尾 能够表示为某个整数的平方的数字称为"平方数" 比如,25,64 虽然无法立即说出某个数是平方数,但经常可以断定某个数不是平方数. 因为平方数的末位只可能是:[0, 1, ...

  5. 蓝桥杯第六届省赛JAVA真题----生命之树

    生命之树 在X森林里,上帝创建了生命之树. 他给每棵树的每个节点(叶子也称为一个节点)上,都标了一个整数,代表这个点的和谐值. 上帝要在这棵树内选出一个非空节点集S,使得对于S中的任意两个点a,b,都 ...

  6. 蓝桥杯第六届省赛JAVA真题----垒骰子

    垒骰子 赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体. 经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥! 我们先来规范一下骰子:1 的 ...

  7. 蓝桥杯第七届国赛JAVA真题----机器人塔

    机器人塔 X星球的机器人表演拉拉队有两种服装,A和B. 他们这次表演的是搭机器人塔. 类似: 队内的组塔规则是: A 只能站在 AA 或 BB 的肩上.     B 只能站在 AB 或 BA 的肩上. ...

  8. 蓝桥杯第七届国赛JAVA真题----七星填数

    七星填数 如图[图1.png]所示. 在七角星的14个节点上填入1~14 的数字,不重复,不遗漏. 要求每条直线上的四个数字之和必须相等. 图中已经给出了3个数字. 请计算其它位置要填充的数字,答案唯 ...

  9. 蓝桥杯第六届省赛JAVA真题----打印菱形

    打印菱形 给出菱形的边长,在控制台上打印出一个菱形来. 为了便于比对空格,我们把空格用句点代替. 当边长为8时,菱形为: .......* ......*.* .....*...* ....*.... ...

最新文章

  1. Jumpserver:跳板机
  2. 计算机文化基础案例教程第三版答案,计算机文化基础案例教程(第3版 谭宁)教学课件 素材.zip-排骨做法.doc...
  3. 解决Ext JS 4.1版本Tree在刷新时选择第一行的问题
  4. curl命令查看耗时
  5. centos7服务器搭建elasticsearch7.6.0集群
  6. 从sqlserver中数据写入mysql_[SQL Server]SQL Server数据库中如何返回INSERT INTO语句插入/写入数据后的记录值(比如ID等)?...
  7. poj-2029 Get Many Persimmon Trees
  8. 前端学习(2835):小程序中使用less
  9. 用Java语言编写的特殊算法
  10. spring-boot-maven-plugin 插件
  11. onlyoffice+vue实现在线预览在线编辑
  12. 复化科特斯公式matlab_牛顿
  13. 程序猿---北京骑行天津~~~~
  14. 卡方检验值转换为P值
  15. Python爬虫 解决异步加载问题--以爬取PEXELS图片为例
  16. AUTOCAD——调整十字光标、CAD表格文字对齐方式
  17. oracle 查询索引个数,Oracle数据库索引的创建和查询
  18. ASP.NET知识点总结
  19. 【python+pyqt5】B站直播弹幕姬
  20. FDC2214学习笔记

热门文章

  1. pagehelper插件oracle,带你学习最简单的分页插件PageHelper
  2. mix2s android p功能,已升安卓P!网友:MIX2S才是亲儿子
  3. C/C++二叉树前序遍历,中序遍历,后序遍历
  4. 热榜!基于jsp+mysql的JSP在线水果销售商城系统设计实现【建议收藏】
  5. 微软ODBC服务器驱动,Windows ODBC 驱动程序中的连接弹性
  6. 最大化窗口设置_Qt学习笔记4(窗口操作及插入图片)
  7. 获取当前窗口是否可见 document.visibilityState
  8. Spring Boot swagger之前后端分离
  9. less linux命令,less 命令用法详解
  10. python爬虫找工作要掌握什么_python爬虫实战:判断招聘信息的存在