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

cc1.日期和进制问题———选择题。

填空题

  • 第一个填空题。第二题可以跳过。
    30min在填空题,必须要把第一题拿下。
    99.9考数学以及一些简单模拟题

做每一组的填空题的第一题各组别的,找pdf,填空题正确率。

  • 写最笨的方法,纯模拟,不要考虑复杂度。

假设法是最好的方法。

握手问题有7个之间不握手,直接假设前七个人之间不握手。

高精度Java自带,可以学一下,但是这么多年就考了一个
觉得难背就放弃,用longlong计算。
学Java快读模板

有的题目是要跑很久,填空题放那跑,不是死循环,十分钟正常,放那让他跑,看后面的题目,可以重新建一个文件编写。

进制问题

背个模板,进制转换用python很简单,自带转换,要是是填空题可以用python跑答案。

import os
import sys

print(int('2022',9))
int  temp=Integer.valueOf(x,2);//先将x由二进制转换为对应的十进制。
String result=Integer.toString(temp,n);//把十进制转换为对应想转换的进制

请添加图片描述

请添加图片描述

首先就是将该数从其进制转换为十进制:
int temp=Integer.valueOf(x,m)````将x由m进制转换为十进制 其次明确转换后的为字符形式,所以可以用String来存储整个字符,或者说将字符串通过toCharArray将其转换为char形式 char []count=Integer.toString(num,2).toCharArray();```在这里首先将num从十进制转换为2进制的字符串,类型为String,再通过toCharArray来将其分割成字符数组,以便于一个一个操作。
在这里,若是转换为二进制,那么考虑对最后一位的操作。x&1判断最后一位为1还是0,因为前面都是0所以只有最后一位有答案。再通过
x>>=1将x右移一位,判断倒数第二位,注意这里一定要移位后赋值,否则x不会被改变。请添加图片描述
特别注意,在这里就不用把其转换为二进制了,因为位运算实质就会自动进行。
若是转换为字符数组char 【】temp,那么注意,在这里比较的是temp【i】==‘1’,是字符1而不是数字1.还有在char中获取数组长度temp.length。没有括号

日期问题。

设计日期问题,要学会映射

最恶心就是要判断闰年,首先是400的倍数就是闰年,或者是4的倍数并不是100的倍数。
年份可以被4整除但不能被100整除的年份,或者可以被400整除的年份
`` if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0)//能整除4且不能整除100 或能整除400
{
printf(“%d是闰年\n”,i);
}
```
闰年那么二月就是29天,不然就是28天。然后呢,按照目前day去+并取余,这样看是星期几。

问题描述
小蓝出生在一个艺术与运动并重的家庭中。

妈妈是位书法家,她希望小蓝能通过练习书法,继承她的艺术天赋,并练就一手好字。爸爸是一名篮球教练,他希望小蓝能通过篮球锻炼身体,培养运动的激情和团队合作的精神。

为了既满足妈妈的期望,又不辜负爸爸的心意,小蓝决定根据日期的笔画数来安排自己的练习。首先,他会将当天的日期按照 “
Y
Y
Y
Y
M
M
D
D
YYYYMMDD” 的格式转换成一个
8
8 位数,然后将这
8
8 位数对应到汉字上,计算这些汉字的总笔画数。如果总笔画数超过
50
50,他就去练习篮球;如果总笔画数不超过
50
50,他就去练习书法。

例如,在
2024
2024 年
1
1 月
1
1 日这天,日期可表示为一个
8
8 位数字
20240101
20240101,其转换为汉字是“二零二四零一零一”。日期的总笔画数为
2
+
13
+
2
+
5
+
13
+
1
+
13
+
1

50
2+13+2+5+13+1+13+1=50,因此在这天,小蓝会去练习书法。

以下是汉字的笔画数对照表:

汉字 笔画数

13
13

1
1

2
2

3
3

5
5

4
4

4
4

2
2

2
2

2
2
现在,请你帮助小蓝统计一下,在
2000
2000 年
1
1 月
1
1 日到
2024
2024 年
4
4 月
13
13 日这段时间内,小蓝有多少天是在练习篮球?

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


```java

```java
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        // 每个月的天数,注意2月会根据闰年调整
        int month[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
        // 每个数字对应的笔画数
        int cnt[] = {13, 1, 2, 3, 5, 4, 4, 2, 2, 2};
        // 开始遍历
        int res = 0;
        for (int y = 2000; y <= 2024; y++) {
            int up = (y == 2024) ? 4 : 12; // 如果是2024年,只计算前4个月
            if (is_leap(y)) month[2] = 29; // 闰年2月有29天
            else month[2] = 28; // 非闰年2月有28天
            for (int m = 1; m <= up; m++) {
                int up2 = (y == 2024 && m == 4) ? 13 : month[m]; // 如果是2024年4月,只计算前13天
                for (int d = 1; d <= up2; d++) {
                    if (calc(y, m, d, cnt)) { // 调用calc方法计算是否需要跑步
                        res++;
                    }
                }
            }
        }
        System.out.println(res);
        scan.close();
    }

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

    // 计算某一天的笔画数是否大于50
    public static boolean calc(int y, int m, int d, int[] cnt) {
        String s = Integer.toString(y); // 年份
        if (m < 10) s += "0"; // 补零
        s += Integer.toString(m); // 月份
        if (d < 10) s += "0"; // 补零
        s += Integer.toString(d); // 日期
        int res = 0;
        for (int i = 0; i < s.length(); i++) {
            res += cnt[s.charAt(i) - '0']; // 计算笔画数 这里的charAt来逐个访问
        }
        return res > 50; // 判断是否需要跑步
    }
}

补充

请添加图片描述
记住,java里面直接给数组赋值不用写明数组长度。还有另外写一个函数,那么需要在main外面定义函数,然后public static 函数类型 函数名称(),不要少了static。还有

用static修饰的方法,无须产生类的实例对象就可以调用该方法。 没有static修饰的方法,需要产生一个类的实例对象才可以调用该方法。 static变量是存储在静态存储区的,不需要实例化。 在main函数中调用函数只能调用静态的。 如果要调用非静态的,那么必须要先实例化对象,然后通过对象来调用非静态方法

相关文章:

  • Hadoop 启动,发现 namenode、secondary namenodes,这两个没有启动,报错超时。
  • dify重磅升级:从0.15.3安全升级1.1.0新手避坑指南
  • 前端 | debounce 防抖 vs 节流(throttle)
  • 【人工智能-前端OpenWebUI】--图表显示
  • Oracle 19C分区表索引小结
  • 链式二叉树概念和结构
  • 【Java】Mybatis学习笔记
  • HTML5与CSS3新特性详解
  • C++回顾 day1
  • MATRIX-BREAKOUT: 2靶场
  • StarRocks中优雅处理JSON与列表字段的初步示例
  • sass介绍
  • 操作系统IO多路复用select,poll,epoll
  • 英语词性--介词
  • 基于springboot的网上订餐系统(006)
  • python:music21 与 AI 结合应用探讨
  • Unity Enlighten与Progressive GPU Lightmapper对比分析
  • 清晰易懂的 PHP 安装与配置教程
  • 【蓝桥杯速成】| 7.01背包练习生
  • Framebuffer应用编程
  • 关键词看中国经济“一季报”:稳,开局良好看信心
  • 经济日报:AI时代如何寻找“你的赛道”
  • 解码人格拼图:探索心理健康的多维视角
  • 我国首次发布铁线礁、牛轭礁珊瑚礁“体检”报告,菲炮制言论毫无科学和事实依据
  • 上海车展的“老头乐”,又升级了
  • 目前中美未进行任何经贸谈判,外交部、商务部再次表明中方立场