赞
踩
大二新手小白第一次参加蓝桥杯,在考试之前,只刷了蓝桥杯官网上一些简单的题目,毕竟,咱还没有学完数据结构,难题咱也不会,只写出来了前几道简单的题目,迫不及待想记录下来,为以后积累经验,望各位大佬多多担待。
先来看一下题目吧!
【问题描述】
已知今天是星期六,请问 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)//除法求商取模
其中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]);//余数
}
}
运行结果就是这样啦!
5991862857142857142857142857
5991862857142857142857142857
1
所以余数就是1,今天是星期六,所以20^22后就是星期日了,答案就是7。
第一次写博客,内心忐忑,有很多不足之处,期待大家的批评指正!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。