What day is that day?
Time Limit: 2 Seconds
Memory Limit: 65536 KB
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.
Author: ZHOU, Yuchen
Source: The 11th Zhejiang Provincial Collegiate Programming Contest
暴力打表找循环节,,发现是294.。
然后直接mod294输出。
#include<cstdio> #include<iostream> #include<cstring> #include<algorithm> using namespace std; int num[1000]; char day[10][10] = {"Saturday","Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday"}; int pow(int x) { int ans=1; for(int i=1; i<=x; i++) ans=(ans*x)%7; return ans; } int main() { for(int i=1; i<=300; i++) num[i]=(pow(i)+num[i-1])%7; int T; scanf("%d",&T); while(T--) { int n; scanf("%d",&n); printf("%s\n",day[num[n%294]]); } return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-30 11:45:36