[蓝桥杯2017初赛]外星日历 大数取模
题目描述
某星系深处发现了文明遗迹。他们的计数也是用十进制。
他们的文明也有日历。日历只有天数,没有年、月的概念。
有趣的是,他们也使用了类似“星期”的概念,只不过他们的一个星期包含了9天,为了方便,这里分别记为: A,B,C....H,I
从一些资料上看到,
他们的23日是星期E
他们的190日是星期A
他们的343251日是星期I
令人兴奋的是,他们居然也预见了“世界末日”的那天,当然是一个很大很大的数字
651764141421415346185
请你计算一下,这遥远的一天是该文明的星期几?
他们的文明也有日历。日历只有天数,没有年、月的概念。
有趣的是,他们也使用了类似“星期”的概念,只不过他们的一个星期包含了9天,为了方便,这里分别记为: A,B,C....H,I
从一些资料上看到,
他们的23日是星期E
他们的190日是星期A
他们的343251日是星期I
令人兴奋的是,他们居然也预见了“世界末日”的那天,当然是一个很大很大的数字
651764141421415346185
请你计算一下,这遥远的一天是该文明的星期几?
输出
输出一个大写字母表示答案
答案:G
题解:大数取模,eg:123%9=1*100%9+2*10%9+3%9,所以对大数的每一位取模即可
#include<iostream> #include<string> #include<algorithm> #include<math.h> #include<string.h> #include<map> #include<stack> #include<queue> #define ll long long using namespace std; int sum[105]; string a="ABCDEFGHI"; int main() { ll ans=0; string s="651764141421415346185"; for(int i=0;s[i];i++) sum[i]=s[i]-'0'; for(int i=0;s[i];i++) ans=(ans*10+sum[i])%9; cout<<a[ans-1]<<endl; return 0; }
等风起的那一天,我已准备好一切