蓝桥杯第六届国赛JAVA真题----奇怪的数列
标题:奇怪的数列
从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真题----奇怪的数列相关推荐
- 蓝桥杯第六届国赛JAVA真题----切开字符串
标题:切开字符串 Pear有一个字符串,不过他希望把它切成两段. 这是一个长度为N(<=10^5)的字符串. Pear希望选择一个位置,把字符串不重复不遗漏地切成两段,长度分别是t和N-t(这两 ...
- 蓝桥杯第六届国赛JAVA真题----表格计算
标题:表格计算 某次无聊中, atm 发现了一个很老的程序.这个程序的功能类似于 Excel ,它对一个表格进行操作. 不妨设表格有 n 行,每行有 m 个格子. 每个格子的内容可以是一个正整数,也可 ...
- 蓝桥杯第六届国赛JAVA真题----密文搜索
标题:密文搜索 福尔摩斯从X星收到一份资料,全部是小写字母组成. 他的助手提供了另一份资料:许多长度为8的密码列表. 福尔摩斯发现,这些密码是被打乱后隐藏在先前那份资料中的. 请你编写一个程序,从第一 ...
- 蓝桥杯第七届国赛JAVA真题----平方末尾
平方末尾 能够表示为某个整数的平方的数字称为"平方数" 比如,25,64 虽然无法立即说出某个数是平方数,但经常可以断定某个数不是平方数. 因为平方数的末位只可能是:[0, 1, ...
- 蓝桥杯第六届省赛JAVA真题----生命之树
生命之树 在X森林里,上帝创建了生命之树. 他给每棵树的每个节点(叶子也称为一个节点)上,都标了一个整数,代表这个点的和谐值. 上帝要在这棵树内选出一个非空节点集S,使得对于S中的任意两个点a,b,都 ...
- 蓝桥杯第六届省赛JAVA真题----垒骰子
垒骰子 赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体. 经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥! 我们先来规范一下骰子:1 的 ...
- 蓝桥杯第七届国赛JAVA真题----机器人塔
机器人塔 X星球的机器人表演拉拉队有两种服装,A和B. 他们这次表演的是搭机器人塔. 类似: 队内的组塔规则是: A 只能站在 AA 或 BB 的肩上. B 只能站在 AB 或 BA 的肩上. ...
- 蓝桥杯第七届国赛JAVA真题----七星填数
七星填数 如图[图1.png]所示. 在七角星的14个节点上填入1~14 的数字,不重复,不遗漏. 要求每条直线上的四个数字之和必须相等. 图中已经给出了3个数字. 请计算其它位置要填充的数字,答案唯 ...
- 蓝桥杯第六届省赛JAVA真题----打印菱形
打印菱形 给出菱形的边长,在控制台上打印出一个菱形来. 为了便于比对空格,我们把空格用句点代替. 当边长为8时,菱形为: .......* ......*.* .....*...* ....*.... ...
最新文章
- Jumpserver:跳板机
- 计算机文化基础案例教程第三版答案,计算机文化基础案例教程(第3版 谭宁)教学课件 素材.zip-排骨做法.doc...
- 解决Ext JS 4.1版本Tree在刷新时选择第一行的问题
- curl命令查看耗时
- centos7服务器搭建elasticsearch7.6.0集群
- 从sqlserver中数据写入mysql_[SQL Server]SQL Server数据库中如何返回INSERT INTO语句插入/写入数据后的记录值(比如ID等)?...
- poj-2029 Get Many Persimmon Trees
- 前端学习(2835):小程序中使用less
- 用Java语言编写的特殊算法
- spring-boot-maven-plugin 插件
- onlyoffice+vue实现在线预览在线编辑
- 复化科特斯公式matlab_牛顿
- 程序猿---北京骑行天津~~~~
- 卡方检验值转换为P值
- Python爬虫 解决异步加载问题--以爬取PEXELS图片为例
- AUTOCAD——调整十字光标、CAD表格文字对齐方式
- oracle 查询索引个数,Oracle数据库索引的创建和查询
- ASP.NET知识点总结
- 【python+pyqt5】B站直播弹幕姬
- FDC2214学习笔记
热门文章
- pagehelper插件oracle,带你学习最简单的分页插件PageHelper
- mix2s android p功能,已升安卓P!网友:MIX2S才是亲儿子
- C/C++二叉树前序遍历,中序遍历,后序遍历
- 热榜!基于jsp+mysql的JSP在线水果销售商城系统设计实现【建议收藏】
- 微软ODBC服务器驱动,Windows ODBC 驱动程序中的连接弹性
- 最大化窗口设置_Qt学习笔记4(窗口操作及插入图片)
- 获取当前窗口是否可见 document.visibilityState
- Spring Boot swagger之前后端分离
- less linux命令,less 命令用法详解
- python爬虫找工作要掌握什么_python爬虫实战:判断招聘信息的存在