蓝桥杯2017初赛-外星日历-数论
題目描述
某星系深處發(fā)現(xiàn)了文明遺跡。他們的計(jì)數(shù)也是用十進(jìn)制。
他們的文明也有日歷。日歷只有天數(shù),沒(méi)有年、月的概念。
有趣的是,他們也使用了類似“星期”的概念,只不過(guò)他們的一個(gè)星期包含了9天,為了方便,這里分別記為: A,B,C…H,I
從一些資料上看到,
他們的23日是星期E
他們的190日是星期A
他們的343251日是星期I
令人興奮的是,他們居然也預(yù)見(jiàn)了“世界末日”的那天,當(dāng)然是一個(gè)很大很大的數(shù)字
651764141421415346185
請(qǐng)你計(jì)算一下,這遙遠(yuǎn)的一天是該文明的星期幾?
輸出
輸出一個(gè)大寫(xiě)字母表示答案
代碼如下:
#include <iostream> using namespace std; typedef long long ll;int main() {ll n;cin >> n;printf("%c\n", n % 9 - 1 + 'A');return 0; }不能這樣寫(xiě):
#include <iostream> using namespace std; typedef long long ll;int main() {ll n;n = 651764141421415346185;printf("%c\n", n % 9 - 1 + 'A');return 0; }這樣寫(xiě)的話答案是E,正確答案是G,本人認(rèn)為這樣寫(xiě)會(huì)錯(cuò)是因?yàn)閿?shù)太大,超過(guò)了long long的范圍,可是為什么用cin讀入數(shù)據(jù)就可以,有哪位大佬解答一下嗎?
2021.4.10
重新回來(lái)寫(xiě)這道題,發(fā)現(xiàn)其實(shí)兩種寫(xiě)法都是錯(cuò)誤的,第一種寫(xiě)法,用cin讀入溢出的數(shù)的時(shí)候會(huì)被強(qiáng)制賦成最大值……答案對(duì)只是因?yàn)閯偤米畲笾等∮嗟扔谀莻€(gè)數(shù)而已……
那這題如果不用高精度要怎么寫(xiě)呢???
這里有個(gè)奇技淫巧!!!
其實(shí)我們可以發(fā)現(xiàn),模9的時(shí)候有這樣一個(gè)規(guī)律:
對(duì)X模Y,其實(shí)等于X每一位的數(shù)的和SUM模Y。
記住,這個(gè)方法只能模9的時(shí)候才可以!!!
那個(gè)給一個(gè)很大的數(shù)取模就變得很簡(jiǎn)單了!!!
總結(jié)
以上是生活随笔為你收集整理的蓝桥杯2017初赛-外星日历-数论的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 绿豆稀饭的功效与作用、禁忌和食用方法
- 下一篇: 蓝桥杯2017初赛-k倍区间-前缀和