17年真题 蓝桥杯 javaC 外星日历 第一题(包含BigInteger的使用)
标题:外星日历
某星系深处发现了文明遗迹。
他们的计数也是用十进制。
他们的文明也有日历。日历只有天数,没有年、月的概念。
有趣的是,他们也使用了类似“星期”的概念,
只不过他们的一个星期包含了9天,
为了方便,这里分别记为: A,B,C…H,I
从一些资料上看到,
他们的23日是星期E
他们的190日是星期A
他们的343251日是星期I
令人兴奋的是,他们居然也预见了“世界末日”的那天,
当然是一个很大很大的数字
651764141421415346185
请你计算一下,这遥远的一天是该文明的星期几?
你需要提交的是一个大写字母,表示该文明的星期几,
不要填写任何多余的内容。
package javaC;
import java.math.BigInteger;
public class _1外星日历 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
char[] c = {'I','A','B','C','D','E','F','G','H'};
BigInteger b1 = new BigInteger("651764141421415346185");
BigInteger b2 = new BigInteger("9");
BigInteger yu = b1.mod(b2);
System.out.println(c[yu.intValue()]);//yu.intValue():将BigInteger类型的数转换成Int类型的数
}
}
题目中涉及到应用BigInteger的用法,贴上有关用法
在 Java 中,有许多数字处理的类,比如 Integer类,但是Integer类有一定的局限性。
我们都知道 Integer 是 Int 的包装类,int 的最大值为 2^31-1。若希望描述更大的整数数据时,使用Integer 数据类型就无法实现了,所以Java中提供了BigInteger 类。
BigInteger类型的数字范围较Integer,Long类型的数字范围要大得多,它支持任意精度的整数,也就是说在运算中 BigInteger 类型可以准确地表示任何大小的整数值而不会丢失任何信息。
下面,让我们一起来学习一下BigInteger的常用方法: