ZOJ - 3785 打表找规律

    科技2026-06-13  3

    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.

    打表,找规律,可以用文件操作去找,word有查找功能

    #include<bits/stdc++.h> const double PI=acos(-1.0); using namespace std; #define mem(a,b) memset(a,b,sizeof(a)) #define lowbit(x) x&-x #define inf 0x3f3f3f3f #define pr pair<int,int> typedef pair<char,int> PAIR; struct CmpByValue { bool operator()(const PAIR& lhs, const PAIR& rhs) { return lhs.second > rhs.second; } }; //priority_queue<int,vector<int>,greater<int>> pp; const int mod = 123456789 ; const int M = 1e3 +10 ; const int limt = 1<<20; const int INF = 1e9; typedef long long ll; /* 打表,找规律,可以用文件操作去找,word有查找功能 */ int tt[295]={0}; int fun2(int n) { int temp=1; for(int i=1;i<=n;i++) { temp=(temp*n)%7; // n 的阶乘再 mod 7 } return temp; } int fun() { for(int i=1;i<295;i++) { tt[i]=(tt[i-1]+fun2(i))%7; } return 0; } int main() { string a[7]={"Saturday","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday"};//因为第一天是Saturday,所以Saturday在0. int t,n; cin>>t; fun(); //打表 while(t--) { cin>>n; n=n%294; cout<<a[tt[n]]<<endl; } return 0; }
    Processed: 0.013, SQL: 9