LQ0115 外星日历余数定理
Posted 海岛Blog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LQ0115 外星日历余数定理相关的知识,希望对你有一定的参考价值。
题目来源:蓝桥杯2017初赛 Java C组G题
题目描述
某星系深处发现了文明遗迹。他们的计数也是用十进制。
他们的文明也有日历。日历只有天数,没有年、月的概念。
有趣的是,他们也使用了类似“星期”的概念,只不过他们的一个星期包含了9天,为了方便,这里分别记为: A,B,C…H,I
从一些资料上看到,
他们的23日是星期E
他们的190日是星期A
他们的343251日是星期I
令人兴奋的是,他们居然也预见了“世界末日”的那天,当然是一个很大很大的数字
651764141421415346185
请你计算一下,这遥远的一天是该文明的星期几?
输出格式
输出一个大写字母表示答案
问题分析
给定的数是一个大数。用Java语言来解决的话还可以用大数来实现。
用C/C++语言编程则需要根据数论的余数定理,用点技巧来解决。
AC的C语言程序如下:
/* LQ0115 外星日历 */
#include <stdio.h>
int main()
/* n = 651764141421415346185 = a*10000000000+b */
long long a = 65176414142;
long long b = 1415346185;
a %= 9;
long long n = a * 10000000000 + b;
printf("%c\\n", (char)(n % 9 - 1 + 'A'));
return 0;
以上是关于LQ0115 外星日历余数定理的主要内容,如果未能解决你的问题,请参考以下文章
初识中国余数定理 (Chinese Remainder Theorem)