当前位置: 首页 > news >正文

蓝桥杯 day01 奇怪的数列 特殊日期

奇怪的数列

题目描述

奇怪的数列

从 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

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 512M

我的解答:

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改public class Main {/*** 计算传入字串第一个字符连续出现的个数*/private static int countNum(String s){int cnt=1;// 获取字符串第一个字符char c = s.charAt(0);for(int i=1;i<s.length();i++){if(c == s.charAt(i)){cnt++;}else{break;}}return cnt;}public static void main(String[] args) {Scanner scan = new Scanner(System.in);//在此输入您的代码...// 初始化结果字符串String result = new String();// m 不超过100String m = scan.next();// n 不超过 20int n = scan.nextInt();// 经过 n 次变换for(int i=1;i<=n;i++){StringBuilder temp = new StringBuilder();for(int j=0;j<m.length();){// 需要处理的子串String subString = m.substring(j);// 拿到当前数字char subChar = subString.charAt(0);// 拿到m中前面数字的长度int cnt = countNum(subString);// 追加当前数字出现的个数temp.append(cnt);// 追加当前数字temp.append(subChar);j+=cnt;}m = temp.toString();result = m;}System.out.println(result);scan.close();}
}

特殊日期

问题描述

对于一个日期,我们可以计算出年份的各个数位上的数字之和,也可以分别计算月和日的各位数字之和。请问从 19001900 年 11 月 11 日至 99999999 年 1212 月 3131 日,总共有多少天,年份的数位数字之和等于月的数位数字之和加日的数位数字之和。

例如,20222022 年 1111 月 1313 日满足要求,因为 2+0+2+2=(1+1)+(1+3)2+0+2+2=(1+1)+(1+3) 。

请提交满足条件的日期的总数量。

答案提交

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 256M
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改public class Main {/*** 通过 month 获取日期*/private static int getDayByMonth(int year,int month){// 二月的天数int febDay;febDay = (year%4==0 && year%100!=0 || year%400==0)? 29 : 28;switch(month){case 1: case 3:case 5:case 7:case 8:case 10:case 12:return 31;case 4:case 6:case 9:case 11:return 30;case 2:return febDay;}return febDay;}public static void main(String[] args) {Scanner scan = new Scanner(System.in);int cnt=0;//在此输入您的代码...for(int year=1900;year<9999;year++){for(int month=1;month<=12;month++){for(int day=1;day<=getDayByMonth(year,month);day++){if(year/1000 + year%1000/100 + year%100/10 + year%10 == month/10 + month%10 + day/10 + day%10 ){cnt++;}}}}System.out.println(cnt);scan.close();}
}

感觉挺简单的,没什么难度。

http://www.lryc.cn/news/256950.html

相关文章:

  • properties配置和读取
  • 如何利用人工智能+物联网技术实现自动化设备生产
  • STM32CubeMx+MATLAB Simulink串口输出实验
  • React中每次渲染都会传入一个新的props.children到子组件?
  • Qt 通过命令行编译程序
  • WireShark监控浏览器登录过程网络请求
  • 202301209将RK3399的挖掘机开发板在Android10下设置系统默认为24小时制
  • 智能优化算法应用:基于法医调查算法无线传感器网络(WSN)覆盖优化 - 附代码
  • 使用MfgTool烧写工具烧写自制系统
  • react中使用react-konva实现画板框选内容
  • es6 相关面试总结
  • 【Hive】——数据仓库
  • 算法基础九
  • QT-在ui界面中给QWidget增加Layout布局的两种方法
  • 免费的网页数据抓取工具有哪些?【2024附下载链接】
  • 报错:Parsed mapper file: ‘file mapper.xml 导致无法启动
  • Linux驱动开发学习笔记2《LED驱动开发试验》
  • hive数据库查看参数/hive查看当前环境配置
  • ajax中get和post的区别,datatype返回的数据类型有哪些?web开发中数据提交的几种方式,有什么区别。百度使用哪种方式?
  • STM32用flash保存参数实现平衡擦写的一种方法
  • Aho Corasick Algorithm
  • 用户管理 --汇总
  • Flutter视频播放器在iOS端和Android端都能实现全屏播放
  • 面试遇到的一些问题(二)
  • JDK8新特性:Lambda表达式规则及用法,方法引用
  • 【GIS】JDK版本升级到17后,GeoServer的图层无法通过openLayer预览
  • vue 批量下载文件,不走后端接口的方法
  • 科技云报道:AI+PaaS,中国云计算市场迎来新“变量”?
  • Windows Service Name重复问题
  • BBS项目