給你 2011 年的某月某日,輸出星期幾。
先算出這是 2011 年中的第幾天,然後去 mod 7
再加上校準的參數就可以找到了。
#include <bits/stdc++.h>
using namespace std;
int main() {
int kase;
cin >> kase;
string Day[]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
int Month[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
while (kase--) {
int m, d;
cin >> m >> d;
int days=0;
for(int i=0;i<m;i++)
days+=Month[i];
int w=(days+d+5)%7;
cout<<Day[w]<<endl;
}
return 0;
}
有一直種序列稱為 jolly jumper
。
假設有 n 個整數的序列,其相鄰兩數的差取絕對值剛好為 1 到 n-1,我們就將其稱為 jolly jumper
。
如果相鄰兩數的差取絕對值大於 n 或等於 0 ,就必定不會是 jolly jumper
,且因為要是 1 到 n-1 ,所以每個數字只能出現過一次,將判斷寫上去就是答案了。
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
while (cin >> n) {
vector<int> nums(n);
vector<bool> count(n, 0);
bool k = 1;
for (auto& i : nums)
cin >> i;
for (int i = 1; i < nums.size(); i++) {
int temp = abs(nums[i] - nums[i - 1]);
if (temp > n || temp == 0 || count[temp]) {
k = 0;
break;
}
count[temp] = 1;
}
if (k)
cout << "Jolly\n";
else
cout << "Not jolly\n";
}
return 0;
}