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)

定理总结

HDU1013,1163 ,2035九余数定理 快速幂取模

Hdu-1163 Eddy's digital Roots(九余数定理)

HDU 1013 Digital Roots(九余数定理)