当前位置:   article > 正文

2022年蓝桥杯省赛JavaB组第一题(星期计算)_已知今天是星期六,请问 20^22 天后是星期几? 注意用数字 1 到 7 表示星期一到星期

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

2022年蓝桥杯省赛JavaB组第一题(星期计算)

大二新手小白第一次参加蓝桥杯,在考试之前,只刷了蓝桥杯官网上一些简单的题目,毕竟,咱还没有学完数据结构,难题咱也不会,只写出来了前几道简单的题目,迫不及待想记录下来,为以后积累经验,望各位大佬多多担待。

先来看一下题目吧!

星期计算

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

说实话,刚看到这道题,我还有一丝窃喜,因为考试前刚看过BigInteger,心想,这不排上用场了。后来跟男朋友讨论的时候,发现他直接用python就解出来了,真是小巫见大巫啦。不过这里还是说说我自己的做法咯。

先来简单认识一下BigInteger,BigInteger用来操作大整数,放在java.math里。

public BigInteger(String val)//构造方法,传入一个字符串
public BigInteger add(BigInteger val)//加法
public BigInteger subtract(BigInteger val)//减法
public BigInteger multiply(BigInteger val)//乘法
public BigInteger divide(BigInteger val)//除法
public BigInteger[] divideAndRemainder(BigInteger val)//除法求商取模
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

其中divide()方法用来求两个数的商,divideAndRemainder()方法可以求两个数的商和余数,所有它的返回值是一个BigInteger数组,只含有两个元素,第一个是商,第二个是余数。
看到这里相信大家已经明白了我的小心思,那就直接上代码吧。

import java.math.BigInteger;

public class T1 {
	public static void main(String[] args) {
		BigInteger base=new BigInteger("20");
		int power=22;
		BigInteger res=base.pow(power);//求20^22	
		BigInteger week=new BigInteger("7");
		BigInteger[] result=res.divideAndRemainder(week);//商和余数
		System.out.println(res.divide(week));//求商
		System.out.println(result[0]);//商
		System.out.println(result[1]);//余数
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

运行结果就是这样啦!

5991862857142857142857142857
5991862857142857142857142857
1
  • 1
  • 2
  • 3

所以余数就是1,今天是星期六,所以20^22后就是星期日了,答案就是7。
第一次写博客,内心忐忑,有很多不足之处,期待大家的批评指正!

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/929637
推荐阅读
相关标签
  

闽ICP备14008679号