Description

题目描述

It's Saturday today, what day is it after 11 + 22 + 33 + ... + NN days?

今天是星期六,11 + 22 + 33 + ... + NN 天后是星期几?

Input

输入

There are multiple test cases. The first line of input contains an integer T indicating the number of test cases. For each test case:

There is only one line containing one integer N (1 <= N <= 1000000000).

多组测试样例。

输入的首行是一个整数T表示测试样例的数量。每个测试样例包含:

只有一行,且每行只有一个整数N (1 <= N <= 1000000000)。

Output

输出

For each test case, output one string indicating the day of week.

每个测试样例输出一个字符串表示星期几。

Sample Input - 输入样例

Sample Output - 输出样例

2

1

2

Sunday

Thursday

Hint

提示

A week consists of Sunday, Monday, Tuesday, Wednesday, Thursday, Friday and Saturday.

一周中包含Sunday, Monday, Tuesday, Wednesday, Thursday, Friday and Saturday。

【题解】

想算出最后是星期几,只要把天数模7就能得到增长了的星期数,从而换算出具体星期。

因此我们需要计算的式子可表示为:

  (11+ 22+ 33+...+ NN)%7

  11%7+ 22%7+ 33%7+...+ NN%7

然后对于大等于7的数,aN%7可以得到:

  7N%7 = (7%7)N%7 = 0N,8N%7 = (8%7)N%7 = 1N,…………以此类推

后继的元素全部遵循这个规律,因此所求a的值为[ 0, 6]。

对于aN%7,a属于[ 0, 6]:

元素\次方%7

0

1

2

3

4

5

6

0

0%7已经为0,其结果全部为0

1

1

1……出现循环

2

1

2

4

1……出现循环

3

1

3

2

6

4

5

1……出现循环

4

1

4

2

1……出现循环

5

1

5

4

6

2

3

1……出现循环

6

1

6

1……出现循环

所求式子可展开为:

第一层

11

22

33

44

55

66

07

第二层

18

29

310

411

512

613

014

第三层

115

216

317

418

519

620

021

第四层

122

223

324

425

526

627

028

第五层

129

230

331

432

533

634

035

第六层

136

237

338

439

540

641

042

第七层

……………………………………………………

然后把每层加起来再%7,可以得到长度为6*7 = 42的循环节。

然后根据每层的循环节套上每个元素的循环节,得到最终循环节,长度为42*7 = 294

附:原本想比较科学地证明最终循环节的长度是294,最后发现坑越挖越大,然后以现在的渣水平填不上,就弃了……

【代码 C++】

 #include<cstdio>
int day[] = {
, , , , , , , , , , , , , , , , , , , ,
, , , , , , , , , , , , , , , , , , , ,
, , , , , , , , , , , , , , , , , , , ,
, , , , , , , , , , , , , , , , , , , ,
, , , , , , , , , , , , , , , , , , , ,
, , , , , , , , , , , , , , , , , , , ,
, , , , , , , , , , , , , , , , , , , ,
, , , , , , , , , , , , , , , , , , , ,
, , , , , , , , , , , , , , , , , , , ,
, , , , , , , , , , , , , , , , , , , ,
, , , , , , , , , , , , , , , , , , , ,
, , , , , , , , , , , , , , , , , , , ,
, , , , , , , , , , , , , , , , , , , ,
, , , , , , , , , , , , , , , , , , , ,
, , , , , , , , , , , , ,
};
char opt[][] = {
"Saturday", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday"
};
int main(){
int t, a;
scanf("%d", &t);
while (t--){
scanf("%d", &a);
puts(opt[day[a % ]]);
}
return ;
}

ZOJ 3785

ZOJ 3785 What day is that day?(今天是星期几?)的更多相关文章

  1. zoj 3785 What day is that day? (打表找规律)

    题目 思路:比赛的时候有想过找循环节,但是,打表打错了. 后来,看着过了挺多人,就急了, 看了一下别人的时间 耗时都挺长的,就以为不是找规律, 没想到真是找规律,不过,这个题的数据可能挺大的. AC代 ...

  2. zoj 3785 What day is that day?

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5272 打表找规律. #include <cstdio> #incl ...

  3. ZOJ 3785 What day is that day?(数论:费马小定理)

    What day is that day? Time Limit: 2 Seconds      Memory Limit: 65536 KB It's Saturday today, what da ...

  4. ZOJ 3785:What day is that day?(数论)

    What day is that day? Time Limit: 2 Seconds Memory Limit: 65536 KB It's Saturday today, what day is ...

  5. 【ZOJ】3785 What day is that day? ——浅谈KMP在ACM竞赛中的暴力打表找规律中的应用

    转载请声明出处:http://www.cnblogs.com/kevince/p/3887827.html    ——By Kevince 首先声明一下,这里的规律指的是循环,即找到最小循环周期. 这 ...

  6. 【ZOJ】3785 What day is that day? ——KMP 暴力打表找规律

    转自:http://www.cnblogs.com/kevince/p/3887827.html 首先声明一下,这里的规律指的是循环,即找到最小循环周期. 这么一说大家心里肯定有数了吧,“不就是nex ...

  7. 2014 Super Training #4 G What day is that day? --两种方法

    原题: ZOJ 3785 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3785 题意:当天是星期六,问经过1^1+2^2+ ...

  8. ZOJ People Counting

    第十三届浙江省大学生程序设计竞赛 I 题, 一道模拟题. ZOJ  3944http://www.icpc.moe/onlinejudge/showProblem.do?problemCode=394 ...

  9. ZOJ 3686 A Simple Tree Problem

    A Simple Tree Problem Time Limit: 3 Seconds      Memory Limit: 65536 KB Given a rooted tree, each no ...

随机推荐

  1. sql字段类型介绍

    1 表格与储存引擎 表格(table)是数据库中用来储存纪录的基本单位,在建立一个新的数据库以后,你必须为这个数据库建立一些储存资料的表格: 每一个数据库都会使用一个资料夹,这些数据库资料夹用来储存所 ...

  2. win7无法通过DHCP获得IP地址

    问题:win7无法通过DHCP获得IP地址(手动设置没有问题),但XP可以自动获取. 前些时候,某局域网反应部分WIN7系统无法正常从DHCP服务器(windows dhcp 服务器)获取ip地址,交 ...

  3. GPS定位原理

    多分钟吧(有人认为美国对其本土覆盖的GPS信号实行不同码率因此纯GPS定位也会很快,谁有美国朋友不妨让他拔卡试试)!因为美版机型其GPS模块的数据处理软件部分与欧版机型是不同的,欧版机型的数据处理软件 ...

  4. MNIST手写数字数据库

    手写数字库很容易建立,但是总会很浪费时间.Google实验室的Corinna Cortes和纽约大学柯朗研究所的Yann LeCun建有一个手写数字数据库,训练库有60,000张手写数字图像,测试库有 ...

  5. csdn在线编程里面的一个排列组合题

    是csdn在线编程里面的一个问题 回文字符串是指从左到右和从右到左相同的字符串,现给定一个仅由小写字母组成的字符串,你可以把它的字母重新排列,以形成不同的回文字符串. 输入:非空仅由小写字母组成的字符 ...

  6. JAVA基础知识之List集合

    List接口和ListIterator接口介绍 List集合新增方法 List集合判断元素重复的标准 ListIterator List.ArrayList和List.Vector 固定长度的List ...

  7. Android 编程下图片的内存优化

    1. 对图片本身进行操作 尽量不要使用 setImageBitmap.setImageResource. BitmapFactory.decodeResource 来设置一张大图,因为这些方法在完成 ...

  8. invoke和beginInvoke

    首先说下,invoke和begininvoke的使用有两种情况: 1. control中的invoke.begininvoke. 2. delegrate中的invoke.begininvoke. 这 ...

  9. PHP去除连续空格

    <?php $note = strip_tags($value['Content']); $note = trim($note); $note = str_replace(" &quo ...

  10. 基于busybox和LFS的linux系统定制

    自从在大学知道了Linux这玩意是可以定制的之后,一直想做出一版属于自己的Linux系统.最近工作比较闲,终于塌下心来好好学习了一下.   目前来说,我接触的定制Linux的方法主要有两种:   1. ...