第八届蓝桥杯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]);
    		}
    	}
	}

}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值