标签:
It‘s Saturday today, what day is it after 11 + 22 + 33 + ... + NN days?
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).
For each test case, output one string indicating the day of week.
2 1 2
Sunday Thursday
A week consists of Sunday, Monday, Tuesday, Wednesday, Thursday, Friday and Saturday.
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; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:
原文地址:http://blog.csdn.net/sky_miange/article/details/47054413