ZOJ3785What day is that day? 规律

来源:互联网 发布:最热网络词条 编辑:程序博客网 时间:2024/05/17 03:54

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

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).

Output

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

Sample Input

2
1
2

Sample Output

Sunday
Thursday

Hint

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

题目大意

今天是星期六。过了1^1+2^2 +…+n^n天,输入n,输出是星期几

解题思路

找规律,先打表,然后搜索前几个,发现294是一个循环节!

代码

#include <cstdio>#include <algorithm>using namespace std;const int maxn = 300;int f[maxn];char week[7][20] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday","Saturday"};int main(){    int tmp = 6;    for(int i = 1 ; i < 295 ; i ++) {        f[i-1] = tmp;        int tt = 1;        for(int j = 1 ; j <= i ; j ++) {            tt = (tt*i)%7;        }        tmp = (tmp+tt)%7;    }    int t;    scanf("%d",&t);    while(t--) {        int n;        scanf("%d",&n);        n = n%294;        printf("%s\n",week[f[n]]);    }    return 0;}
0 0
原创粉丝点击