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是一个循环节!
代码;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;}
走过的路成为背后的风景,不能回头不能停留,若此刻停留,