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

2024 蓝桥杯 Java 研究生组

试题 A: 拼正方形(本题总分:5 分)

小蓝正在玩拼图游戏,他有 7385137888721 个 2 × 2 的方块和 10470245 个 1 × 1 的方块,他需要从中挑出一些来拼出一个正方形,比如用 3 个 2 × 2 和 4 个 1 × 1 的方块可以拼出一个4 × 4 的正方形,用 9 个 2 × 2 的方块可以拼出一个 6 × 6 的正方形,请问小蓝能拼成的最大的正方形的边长为多少。

解题思路:

尽可能多的使用 2x2 的正方形,之后用 1x1 的正方形镶边。

Java代码:

public class Main {
    public static void main(String[] args) {
        long num2x2 = 7385137888721L;
        long num1x1 = 10470245L;
        
        long result = (long) Math.sqrt(num2x2) * 2;
        
        while (true) {
            if ((num1x1 -= result * 2 + 1) < 0) break;
            result ++;
        }
        
        System.out.println(result );
    }
}

试题 B: 召唤数学精灵(本题总分:5 分)

数学家们发现了两种用于召唤强大的数学精灵的仪式,这两种仪式分别被称为累加法仪式 A(n) 和累乘法仪式 B(n)。累加法仪式 A(n) 是将从 1 到 n 的所有数字进行累加求和,即:A(n) = 1 + 2 + · · · + n 。累乘法仪式 B(n) 则是将从 1 到 n 的所有数字进行累乘求积,即:B(n) = 1 × 2 × · · · × n 。据说,当某个数字 i 满足 A(i) − B(i) 能被 100 整除时,数学精灵就会被召唤出来。现在,请你寻找在 1 到 2024041331404202 之间有多少个数字 i,能够成功召唤出强大的数学精灵。

解题思路:

找规律。

Java代码:

public class Main {
    public static void main(String[] args) {
        long num = 2024041331404202L;
        
        long result1 = 4 + 2;
        long result2 = (num - 200) / 200 * 4;
        
        System.out.println(result1 + result2);
    }
}

试题 C:

诗人的眼中,数字是生活的韵律,也是诗意的表达。小蓝,当代顶级诗人与数学家,被赋予了 “数学诗人” 的美誉。他擅长将冰冷的数字与抽象的诗意相融合,并用优雅的文字将数学之美展现于纸上。某日,小蓝静坐书桌前,目光所及,展现着 n 个数字,它们依次为 a1, a2, . . . , an,熠熠生辉。小蓝悟到,如果一个数能够以若干个(至少两个)连续的正整数相加表示,那么它就蕴含诗意。例如,数字 6 就蕴含诗意,因为它可以表示为 1 + 2 + 3。而 8 则缺乏诗意,因为它无法用连续的正整数相加表示。小蓝希望他面前的所有数字都蕴含诗意,为此,他决定从这 n 个数字中删除一部分。请问,小蓝需要删除多少个数字,才能使剩下的数字全部蕴含诗意?

解题思路:

找规律。发现只有 2 n 2^n 2n 无法表出。

Java代码:

import java.util.*;
import java.io.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        PrintWriter out = new PrintWriter(System.out);
        
        final long POW = 1L << 62;
        int n = Integer.parseInt(in.readLine());
        
        StringTokenizer st = new StringTokenizer(in.readLine());
        int ans = 0;
        while (n-- > 0) {
            if (POW % Long.parseLong(st.nextToken()) == 0) ans++;
        }
        out.println(ans);
        
        out.flush();
        out.close();
    }
}

相关文章:

  • 基于STM32与应变片的协作机械臂力反馈控制系统设计与实现---5.2 工业机械臂系统性能测试全方案(专业工程级)
  • 增长黑客:激活实验助力增长
  • [Scade One] Swan与Scade 6的区别 - signal 特性的移除
  • 边缘计算网关:开启物联网新时代的钥匙
  • Llama 4全面评测:官方数据亮眼,社区测试显不足之处
  • 蓝桥杯c++每日刷题(洛谷)
  • mpu6050读who_am_i寄存器一直读0x7c
  • 蓝叠模拟器过检测全攻略
  • 设计模式(23种设计模式简介)
  • 多线程(进阶)(内涵面试题)
  • CF29D Ant on the Tree
  • openMP开发
  • 基于 Spring Boot 瑞吉外卖系统开发(四)
  • 博途 TIA Portal之1200做主站与汇川EASY的TCP通讯
  • 【第39节】windows编程:打造MFC版本任务管理器
  • C++11QT复习 (十九)
  • 大模型本地部署系列(2) Ollama部署DeepSeek-R1
  • Spring Security 的核心配置项详解,涵盖认证、授权、过滤器链、HTTP安全设置等关键配置,结合 Spring Boot 3.x 版本最佳实践
  • 数据校验和错误处理的方法与策略
  • Linux网络编程——TCP协议格式、可靠性分析
  • 长沙3合1网站建设价格/网店推广分为哪几种类型
  • wordpress 错误日志 改为/微信seo是什么意思
  • 怎样用java 做网站/百度推广排名怎么做的
  • 用dw做的网页如何上传到网站/青岛网站推广系统
  • 王色网站/百度竞价排名事件
  • 北京市网站备案/杭州网站seo推广软件