2022年第十三届蓝桥杯比赛Java B组 【全部真题答案解析-第一部分】

慈云数据 2024-03-12 技术支持 62 0

最近回顾了Java B组的试题,深有感触:脑子长时间不用会锈住,很可怕。

兄弟们,都给我从被窝里爬起来,赶紧开始卷!!!

2022年第十三届蓝桥杯Java B组(第一部分 A~F题)

目录

一、填空题

试题 A: 星期计算

思路与题解:

试题 B: 山

思路与题解:

二、编程

试题 C: 字符统计

思路与题解:

试题 D: 最少刷题数

思路与题解:

试题 E: 求阶乘

 思路与题解:

试题 F: 最大子矩阵

 思路与题解: 


一、填空题

试题 A: 星期计算

本题总分:5 分

【问题描述

已知今天是星期六,请问  20^{22}天后是星期几?注意用数字 1 到 7 表示星期一到星期日。

【答案提交

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

思路与题解:

    A题显然是个签到题,很多人第一思路就是“取余”,思路没错,但是如果直接暴力取余,那你就格局小了,哥们!

      因为20的22次幂(大于2^88)明显不在long类型的范围内【(2^63)-1】,那么就要分步骤做取余运算:

      根据公式: (a * b) % p = (a % p * b % p) % p 

      20^22相当于22个20做了21次乘法运算,所以我的思路是把每一次乘法的结果取余,这样,别说是long可以装得下,就算是int也手拿把掐了!

	public static void Java_B_A(){
		int n = 20;
		for(int i=0;i
微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon