【 Java 组 】蓝桥杯省赛真题 [世纪末的星期] [幸运数] (持续更新中...)

news2024/12/27 17:27:45

在这里插入图片描述

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~
个人主页:.29.的博客
学习社区:进去逛一逛~

在这里插入图片描述

蓝桥杯真题--持续更新中...

  • 一、世纪末的星期
  • 二、幸运数





一、世纪末的星期


题目描述

在这里插入图片描述

文字版:

曾有邪教称 1999 年 12 月 31 日是世界末日。当然该谣言已经不攻自破。

还有人称今后的某个世纪末的 12 月 31 日,如果是星期一则会…

有趣的是,任何一个世纪末的年份的 12 月 31 日都不可能是星期一!!

于是,“谣言制造商”又修改为星期日…

1999 年的 12 月 31 日是星期五,请问:未来哪一个离我们最近的一个世纪末年(即 xx99 年)的 12 月 31 日正好是星期天(即星期日)?

请回答该年份(只写这个 4 位整数,不要写 12 月 31 等多余信息)


解题思路
Java解法比较简单,可以直接调用 Calendar 对象的相关方法:

Calendar.set(int field, int value) 方法
Calendar.get(int field) 方法

借助上述方法,我们就能轻松获取到某年某月某日是星期几了。

具体做法就是遍历1999年及以后的每一个世纪末年(XX99)的 12 月 31 日,借助get()方法获取当天是星期几,若正好是星期天则停止循环,并输出年份。


解题代码:

import java.util.Calendar;

public class 世纪末的星期 {
	public static void main(String[] args) {
		//使用Calender对象的getInstance()方法获取其对象
		Calendar calendar = Calendar.getInstance();
		
		for(int year = 1999;;year += 100) {    //每个循环加100年。遍历所有世纪末
			//set()获取年月日
			calendar.set(Calendar.YEAR, year);
			calendar.set(Calendar.MONTH, 11);  //11代表十二月
			calendar.set(Calendar.DAY_OF_MONTH, 31);
			//若世纪末为星期日(数字1),输出当前世纪末年份
			if(calendar.get(Calendar.DAY_OF_WEEK) == 1) {
				System.out.println(calendar.get(Calendar.YEAR));
				break;                        //停止循环
			}
		}
		
	}
}

在这里插入图片描述





二、幸运数


题目描述

在这里插入图片描述

文字版:

幸运数是波兰数学家乌拉姆命名的。它采用与生成素数类似的"筛法"生成。

首先从 1 开始写出自然数 1,2,3,4,5,6,⋯

1 就是第一个幸运数。

我们从 2 这个数开始。把所有序号能被 2 整除的项删除,变为:

1 3 5 7 9⋯

把它们缩紧,重新记序,为:

1 3 5 7 9⋯

这时,3 为第 2个幸运数,然后把所有能被 3 整除的序号位置的数删去。注意,是序号位置,不是那个数本身能否被 3 整除!!

删除的应该是 5,11,17,⋯

此时 7 为第 3 个幸运数,然后再删去序号位置能被 7 整除的( 19,39,⋯)

最后剩下的序列类似:

1,3,7,9,13,15,21,25,31,33,37,43,49,51,63,67,69,73,75,79,⋯

输入描述:

输入两个正整数 m,n, 用空格分开 (m< n <10^6)。

输出描述:

输出位于 m和n 之间的幸运数的个数(不包含 m 和 n )。


解题思路

按照题目描述,开始需要从1开始写出自然数,我们可以不做处理,从第一轮的“筛选”开始,
第一轮,只需要遍历数组下标,通过2i+1的运算,即可获得1.3.5.7…的序列,
从第二轮开始,我们就需要重复地遍历最新“幸运数”之后的数字,将能被“幸运数”整除的序号位置的数删去,获取到新的序列。
这样的循环一直持续到最新的幸运数 >= 输入的整数n,
循环停止后,我们就获得了最新的序列,遍历序列,记录m和n之间的幸运数个数,输出即可~


解题代码:

import java.util.Scanner;


public class 幸运数 {
	public static void main(String[] args) {
		//输入
		Scanner scan = new Scanner(System.in);
		//输入两个整数,分别为 m 、n
		int m = scan.nextInt();
		int n = scan.nextInt();
		//创建一个数组,用于存放序列
		int[] arr = new int[n];
		//记录m和n之间的幸运数个数
		int count = 0;
		
		//第一轮,所有序号能被 2 整除的项删除
		for(int i = 0;i < n;i++) {
			arr[i] = i*2+1;
		}
		
		//当前幸运数为3,下标index = 1
		int index = 1;
		//设置无限循环
		while(true) {	
			//记录幸运数的下一位置
			int p = index+1;
			//从幸运数的下一位置开始遍历
			for(int j = index+1 ;j < n;j++) {
				//实际数字序位 即 下标+1,
				//能被当前幸运数整除 说明新的序列中不需要,故不做处理
				if((j+1) % arr[index] == 0) {
				}else {
					//若新的序列中需要,放置到幸运数的下一位置。
					//(新的幸运数产生,代表幸运数下一位置的p需要+1)
					arr[p++] = arr[j];
				}
			}
			
			//新的序列生成,幸运数增加,幸运数下标+1
			++index;
			//若新的幸运数>=n,停止while循环
			if(arr[index] >= n) break;
		}
		
		//遍历当前存放着最新序列的数组,记录m和n之间的幸运数个数
		for(int i = 0;i < n;++i) {
			if(arr[i] > m && arr[i] < n) {
				count++;
			}
		}
		//输出
		System.out.print(count);
		
	}
}

在这里插入图片描述





在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/374483.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【设计模式】策略模式在Java工程中应用

在之前的文章中&#xff0c;曾经给大家介绍过策略模式&#xff1a;【设计模式】策略模式&#xff0c;在该篇文章中&#xff0c;我们曾很清楚的说到&#xff0c;策略模式主要解决的问题是&#xff1a;在有多种算法相似的情况下&#xff0c;解决使用 if...else 所带来的复杂和难以…

【Spring从成神到升仙系列 一】2023年再不会动态代理,就要被淘汰了

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱敲代码的小黄&#xff0c;独角兽企业的Java开发工程师&#xff0c;CSDN博客专家&#xff0c;阿里云专家博主&#x1f4d5;系列专栏&#xff1a;Java设计模式、数据结构和算法、Kafka从入门到成神、Kafka从成神到升仙…

BingGPT 国内中转

BingGPT 国内中转 本项目的github地址 本项目最上层是提供一个使用BingGPT的web接口&#xff0c;仅供学习&#xff0c;如有侵权请联系作者。 预先准备&#xff1a; 一个可以访问bingGPT的外网服务器&#xff08;可在tencent cloud 选购)一个在已经注册new_bing_list的账号 …

泰克示波器MD03012-一款高性能、高可靠性的仪器

泰克示波器MD03012是一款常见的仪器&#xff0c;以其出色的性能和高可靠性被广泛应用于电子工程、教学演示等领域。它采用先进的电子技术&#xff0c;具有高精度、高灵敏度和高可靠性等特点&#xff0c;能够满足工程师们在实际工作中的要求。泰克示波器MD03012拥有一套强大的功…

华为OD机试题,用 Java 解【数组排序】问题

最近更新的博客 华为OD机试题,用 Java 解【停车场车辆统计】问题华为OD机试题,用 Java 解【字符串变换最小字符串】问题华为OD机试题,用 Java 解【计算最大乘积】问题华为OD机试题,用 Java 解【DNA 序列】问题华为OD机试 - 组成最大数(Java) | 机试题算法思路 【2023】使…

Clickhouse学习(二):MergeTree存储结构

MergeTree一、MergeTree逻辑存储结构二、MergeTree物理存储结构三、总结一、MergeTree逻辑存储结构 如上图所示,在排序键(CountrID、Date)上做索引,数据会按照这两个字段先后排序ClickHouse是稀疏索引,每隔8192行做一个索引,如(a,1),(a,2),比如想查a,要读取[0,3)之间的内容,稀疏…

Python安装教程(附带安装包)

首先&#xff0c;打开python安装包的下载地址&#xff0c;https://www.python.org/downloads/&#xff0c;会有些慢 点击downloads中的windows 左侧是稳定的版本&#xff0c;我这边下的是3.8的&#xff0c;不想去官网下载的可以直接用我下载的这个3.8版本&#xff0c;https://…

隐私计算头条周刊(2.20-2.26)

开放隐私计算收录于合集#企业动态45个#周刊合辑45个#政策聚焦38个#隐私计算92个#行业研究37个开放隐私计算开放隐私计算OpenMPC是国内第一个且影响力最大的隐私计算开放社区。社区秉承开放共享的精神&#xff0c;专注于隐私计算行业的研究与布道。社区致力于隐私计算技术的传播…

Reids实战—黑马点评(三)秒杀篇

Reids实战—黑马点评&#xff08;三&#xff09;秒杀篇 来自黑马的redis课程的笔记 【黑马程序员Redis入门到实战教程&#xff0c;深度透析redis底层原理redis分布式锁企业解决方案黑马点评实战项目】 目录Reids实战—黑马点评&#xff08;三&#xff09;秒杀篇一、全局唯一I…

改进的 A*算法的路径规划(路径规划+代码+毕业设计)

引言 近年来&#xff0c;随着智能时代的到来&#xff0c;路径规划技术飞快发展&#xff0c;已经形成了一套较为成熟的理论体系。其经典规划算法包括 Dijkstra 算法、A算法、D算法、Field D算法等&#xff0c;然而传统的路径规划算法在复杂的场景的表现并不如人意&#xff0c;例…

一些cmake error fixed

建完虚拟环境后 运行 pip install . 出现报错&#xff0c;显示svox2安装出错&#xff0c;然后开始进入到svox2中进行手动编译和安装。 1. cmake svox2/csrc pybind11找不到 conda install pybind11用 pip install 在虚拟环境中安装不行&#xff0c;据说会安装到全局下… 2. c…

Allegro如何标注PCB的尺寸参数操作指导

Allegro如何标注PCB的尺寸参数操作指导 在输出生产文件之前,需要对PCB的尺寸进行标注,如下图 用Allegro如何进行标注,具体操作如下 点击Manufacture选择Dimension Enviroment<

量化学习(一)数据列表获取

试验环境 windows10 AnacondaPyCharm&#xff08;小白参考文章&#xff1a;https://coderx.com.cn/?p14&#xff09; 数据库&#xff1a; VM中安装MySQL5.7&#xff08;设置utf8及相应配置优化&#xff09; 复权 小白参考文章&#xff1a;https://zhuanlan.zhihu.com/p/469820…

实例3:树莓派呼吸灯

实例3&#xff1a;树莓派呼吸灯 实验目的 通过背景知识学习&#xff0c;了解digital与analog的区别。通过GPIO对外部LED灯进行呼吸控制&#xff0c;熟悉PWM技术。 实验要求 通过python编程&#xff0c;用GPIO控制LED灯&#xff0c;使之亮度逐渐增大&#xff0c;随后减小&am…

10万字大数据平台数据治理体系和大数据架构技术方案word

【版权声明】本资料来源网络&#xff0c;知识分享&#xff0c;仅供个人学习&#xff0c;请勿商用。【侵删致歉】如有侵权请联系小编&#xff0c;将在收到信息后第一时间删除&#xff01;完整资料领取见文末&#xff0c;部分资料内容&#xff1a; 总体技术架构设计 基于企业内部…

高频面试题|RabbitMQ如何防止消息的重复消费?

一. 前言最近有很多小伙伴开始找工作&#xff0c;在面试时&#xff0c;面试官经常会问我们这样一个题目&#xff1a;RabbitMQ如何防止重复消费?有很多小伙伴这个时候都在想&#xff0c;消息怎么还会重复消费呢???.......所以他们在面试后就跑来问壹哥&#xff0c;针对这个比…

【华为OD机试模拟题】用 C++ 实现 - 异常的打卡记录(2023.Q1)

最近更新的博客 【华为OD机试模拟题】用 C++ 实现 - 去重求和(2023.Q1) 文章目录 最近更新的博客使用说明异常的打卡记录【华为OD机试模拟题】题目输入输出备注示例一输入输出说明示例二输入输出说明示例三输入输出说明

基于合作型Stackerlberg博弈的考虑差别定价和风险管理的微网运行策略研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

数据结构与算法(五):优先队列

这节总结一下优先队列的常用实现方法。 一、基本概念 普通的队列是一种先进先出的数据结构&#xff0c;元素在队列尾追加&#xff0c;而从队列头删除。在优先队列中&#xff0c;元素被赋予优先级。当访问元素时&#xff0c;具有最高优先级的元素最先删除。优先队列具有最高级…

100天精通Python(数据可视化篇)——第77天:数据可视化入门基础大全(万字总结+含常用图表动图展示)

文章目录1. 什么是数据可视化&#xff1f;2. 为什么会用数据可视化&#xff1f;3. 数据可视化的好处&#xff1f;4. 如何使用数据可视化&#xff1f;5. Python数据可视化常用工具1&#xff09;Matplotlib绘图2&#xff09;Seaborn绘图3&#xff09;Bokeh绘图6. 常用图表介绍及其…