ZOJ 3785 What day is that day?(打表找周期)
题意:
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.
#include <stdio.h>
#include <string.h>
char e[10][20]={"Saturday","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday"};
int main()
{
int sum = 0;
int a[1000];
for( int i = 1; i < 1000; i++)
{
int ans = 1;
for( int n = 1; n <= i; n++)
{
ans=ans*i;
ans=ans%7;
}
sum=(sum+ans);
sum=sum%7;
a[i]=sum;
//printf("%d\n",a[i]);
}
int n;
scanf("%d",&n);
while(n--)
{
int t;
scanf("%d",&t);
t=t%294;
printf("%s\n",e[a[t]]);
}
//找循环节 为294
// for( int l = 20;;l++)
// {
// int ok = 0;
// for( int i = 1;i<1000;i++)
// {
// if(a[i]!=a[i+l])
// {
// ok = 1;
// break;
// }
//
// if( i > l && !ok)
// {
// printf("%d\n",l);break;
// }
//
//
// }
}