第八届蓝桥杯JAVAC组-外星日历

第一题:外星日历

题目描述

某星系深处发现了文明遗迹。

他们的计数也是用十进制。
他们的文明也有日历。日历只有天数,没有年、月的概念。
有趣的是,他们也使用了类似“星期”的概念,
只不过他们的一个星期包含了9天,
为了方便,这里分别记为: A,B,C…H,I

从一些资料上看到,
他们的23日是星期E
他们的190日是星期A
他们的343251日是星期I

令人兴奋的是,他们居然也预见了“世界末日”的那天,
当然是一个很大很大的数字
651764141421415346185

请你计算一下,这遥远的一天是该文明的星期几?

你需要提交的是一个大写字母,表示该文明的星期几,
不要填写任何多余的内容。

import java.math.BigInteger;


public class 外星日历 {
     

	/**
	 * 651764141421415346185
	 */
	public static void main(String[] args) {
     
		// TODO Auto-generated method stub
		//方法一:
        String a = "651764141421415346185";
        char st[]={
     'I','A','B','C','D','E','F','G','H'};
        //用于储存余数和
        int sum = 0; 
        for (int i = 0; i <a.length(); i++) {
     
			int num = a.charAt(i)-48;
			sum+=num%9;  //累加余数和
		}
        int mo = sum%9; //余数和求模       
		System.out.println(st[mo]);
        
         //方法二:
    	BigInteger m = new BigInteger("651764141421415346185");
    	BigInteger n = new BigInteger("9");
    	BigInteger s = m.mod(n);
    	for(int i=0;i<st.length;i++){
     
    		//biginteger转化为int进行判断
    		if(i==s.intValue()){
       
    			System.out.println(st[i]);
    		}
    	}
	}

}

你可能感兴趣的:(第八届蓝桥杯JAVAC组,java)