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

2023年蓝桥杯 省赛 ————特殊日期

2.特殊日期 - 蓝桥云课

错误原因:

分不清大小月,将闰年的2月天数当成了28天,非闰年当成了27天,因此出错

错误代码如下:

package Lanqiao;

import java.util.Scanner;

/**
 * @author zb
 * date2025/3/16 13:22
 */
public class L3495 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int count = 0 ;
        int m[] = {0,31,27,31,30,31,30,31,30,31,31,30,31};

        for (int i = 2000; i <=2000000 ; i++) {


            for (int j = 1; j <=12 ; j++) {

//                判断闰年,如果是闰年的话就给二月增加一天
                if(i%400==0||(i%4==0&&i%100!=0)){
                    if(j==2){
                       m[j] =28;
                    }
                }
                for (int k = 1; k <=m[j] ; k++) {
                    if(i%j==0&&i%k==0){
                        count++;
                    }
                    if(i==2000000){
                        i = 2000001;
                        j = 13;
                        break;

                    }
                }


            }
            m[2] =27;

        }
        System.out.println(count);







        in.close();
    }
}

看了一遍解析之后又错了,少了个=号

package Lanqiao;

/**
 * @author zb
 * date2025/3/16 13:42
 */
public class L3495 {
    public static void main(String[] args) {
//        记录每个月有多少天
        int []m = {0,31,28,31,30,31,30,31,31,30,31,30,31};
//        记录数量
        int count = 0 ;
//        年
        for (int i = 2000; i <2000000 ; i++) {

//            判断闰年,闰年给2月+1天
            if(i%400==0||(i%4==0&&i%100!=0)){
                m[2]  = 29;
            }
//            月份
            for (int j = 1; j <=12 ; j++) {
//                日期
                for (int k = 1; k <=m[j] ; k++) {
                    if(i%j==0&&i%k==0){
                        count++;
                    }
//                    退出循环的条件2000000年1月1日
//                    因为年和月的循环条件分别是<=2000000和<=12
                    if(i==2000000&&j==1&&k==1){
                        i=2000001;
                        j = 13 ;
                        break;
                    }
                }
            }
//            默认下一年不是闰年
            m[2] =28;


        }
        System.out.println(count);


    }
}

把j<2000000改成<=2000000

会了也做不对

相关文章:

  • 2025年【广东省安全员C证第四批(专职安全生产管理人员)】考试及广东省安全员C证第四批(专职安全生产管理人员)模拟试题
  • CMake简单入门
  • priority_queue模拟实现
  • 靶场(十一)---小白心得靶场思路---Clue
  • RBA+minibatch的尝试
  • ImportError: cannot import name ‘genai‘ from ‘google‘ (unknown location) 问题如何处理
  • C++11函数包装器
  • 防重复提交详解:从前端Vue到后端Java的全面解决方案
  • Matlab 风力发电机磁悬浮轴承模型pid控制
  • 在办公电脑上本地部署 70b 的 DeepSeek 模型并实现相应功能的大致步骤
  • 点灯、点各式各样的灯
  • yarn调度过程
  • C++20 指定初始化器
  • 算是解决可以访问github但无法clone的问题
  • 【Java 优选算法】分治-归并排序
  • 代码随想录|二叉树|11完全二叉树的节点个数
  • spring-ai-alibaba-examples项目编译运行
  • 代码随想录算法训练营第七天|组合、组合总和III和电话号码的字母组合
  • 基于cat1的贵重物品的状态和位置小型监控系统特色解析
  • 第十五届蓝桥杯C/C++B组拔河问题详解
  • 明薇通网站建设首选/百度网站推广电话
  • 去设计公司还是去企业/深圳搜索引擎优化seo
  • 北京制作网站报价/获客软件排名前十名
  • 做网站上的在线支付怎么做/免费外链网站
  • 做新媒体广告的网站/口碑好的设计培训机构
  • 二手网站建设/微信营销的模式有哪些