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

【蓝桥杯】 枚举和模拟练习题

系列文章目录

蓝桥杯例题 枚举和模拟


文章目录

  • 系列文章目录
  • 前言
  • 一、好数:
    • 题目参考:
    • 核心思想:
    • 代码实现:
  • 二、艺术与篮球:
    • 题目参考:
    • 核心思想:
    • 代码实现:
  • 总结


前言

        今天距离蓝桥杯还有13天,时间不多了,我也在复习,而我们最容易掌握的就是暴力来写题,因此今天给大家补充两道枚举和模拟类的题,下面是我的讲解过程。


一、好数:

题目参考:

    

核心思想:

   其实好数这道题就是典型的枚举,因为我们需要把从1开始枚举到我们输入的数来判断这个数是不是好数,所以我们要枚举来找是不是符合条件就对了。

代码实现:        
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
          int N = scan.nextInt();
          int count = 0;
          for(int i = 1;i<=N;i++){
               count +=solve(i);
          }
        System.out.println(count);



        scan.close();
    }
    public static int solve(int num){
      //这是进行每个数的分解位数的基本操作
            int digit = 1;//用来维护奇偶数位的
         while(num>0){
            int t = num%10;//这里面的细节就是从个位开始取
            if(digit % 2 == 1){
                 if(t%2 == 0){
                    return 0;
                 }  
            }else{
                 if(t%2 == 1){
                    return 0;
                 }
            }
             num/=10;
            digit++;
         }
       return 1;

    }
}

      这道题我认为较重要需要掌握的就是如何从个位依次得到每一位,这在许多地方都需要使用这个固定模板。

二、艺术与篮球:

     题目参考:

    

     核心思想:

    这个日期格式的题也是一个枚举模拟的题,非常典型,这个就体现出来了数组的重要性,我们分别把笔画和每月的天数存到数组当中,其实也可以用HashMap键值对来存,这里面我们用数组来存,然后就是计算笔画权值跟50来进行比较,从2000枚举到2024年4月13号。

      代码实现:
public class Main {
    // 每月天数数组,平年默认2月28天
    static int[] months = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    static int[] hz = {13, 1, 2, 3, 5, 4, 4, 2, 2, 2}; // 数字对应的权值

    // 判断是否为闰年
    public static boolean leap(int year) {
        return (year % 400 == 0) || (year % 4 == 0 && year % 100 != 0);
    }

    public static void main(String[] args) {
        solve();
    }

    public static void solve() {
        int ans = 0; // 符合条件的日期个数

        // 遍历年份
        for (int year = 2000; year <= 2024; year++) {
            // 根据年份来确定2月份是闰年还是平年
            months[2] = leap(year) ? 29 : 28;

            // 遍历月份
            for (int month = 1; month <= 12; month++) {
                // 遍历每天
                for (int day = 1; day <= months[month]; day++) {
                    int cnt = 0; // 日期的权值总和
                    int y1, y2, y3, y4, m1, m2, d1, d2;

                    // 提取年份、月份和日期的各个位
                    y1 = year / 1000;
                    y2 = (year / 100) % 10;
                    y3 = (year / 10) % 10;
                    y4 = year % 10;
                    m1 = month / 10;
                    m2 = month % 10;
                    d1 = day / 10;
                    d2 = day % 10;

                    // 计算日期权值总和
                    cnt = hz[y1] + hz[y2] + hz[y3] + hz[y4] + hz[m1] + hz[m2] + hz[d1] + hz[d2];

                    // 如果日期的权值总和大于50,符合条件
                    if (cnt > 50) {
                        ans++;
                    }

                    // 当到达2024年4月13日时输出并结束
                    if (year == 2024 && month == 4 && day == 13) {
                        System.out.println(ans);
                        return;
                    }
                }
            }
        }
    }
}

         像这里面我们也有一个模板来得到每一位,所以这个模板我们一定要记得,就是如果求每一位是如何得到的。


总结

  以上就是这两道题的见解,其实这种枚举和模拟的题就是找出来相应的条件来进行枚举,找出符合的,其实这个没有什么难的,就是分析好这个过程就行,接下来我会持续更新蓝桥杯的经典例题的,谢谢大家。

相关文章:

  • 统一语言学习范式
  • 企业级海外网络专线行业应用案例及服务商推荐
  • element-ui图片查看器
  • idea导入tomcat的jar
  • 算法学习11——滑动窗口——最大连续1的个数
  • 兼职网|基于Java+vue的兼职网系统(源码+数据库+文档)
  • 交换机、路由器、VLAN、单臂路由、三层交换、STP
  • python学习笔记(6)运算符
  • 蓝桥杯—日期遍历
  • 1. 两数之和
  • 美颜SDK兼容性挑战:如何让美颜滤镜API适配iOS与安卓?
  • 2025宁德时代测评Verify考什么?网申测评如何通过SHL笔试|附真题线上笔试考点、高分攻略、CATL新能源科技SHL测评宁德社招题目、面试攻略、求职建议
  • 华为MPLS Virtual PN option C1(有/无RR)配置wireshark抓包分析
  • AgGridReact 禁止checkbox复选框选中(isRowSelectable)
  • uniapp实现小票打印 兼容微信小程序安卓
  • 数据结构和算法(十一)--图
  • 【开发问题记录】高德地图 Web 端开发详解:高德地图 API 最佳实践指南(安装、marker添加、逆向地理编码、实际业务案例实操)
  • 华为MPLS Virtual PN option A配置wireshark抓包分析
  • unidbg读写跟踪还原X-Gorgon
  • BY组态-低代码web可视化组件
  • wordpress中文文章排版插件/深圳网站优化培训
  • 外贸网站建设上海/seo文章优化方法
  • 益阳一站式网站建设公司/网络推广运营公司
  • 重庆建设教育协会网站/网络营销推广的方式
  • 网站服务器时间在哪里查询/如何优化关键词搜索排名
  • 做电子商务系统网站/网络营销的公司有哪些