题解 | #Day of Week#

Day of Week

https://www.nowcoder.com/practice/a3417270d1c0421587a60b93cdacbca0

#include <iostream>
using namespace std;

string list[12] = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
string list2[7] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" };
int list3[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

int month(string s) {
    for (int i = 0; i < 12; i++) {
        if (s == list[i])
            return i + 1;
    }
    return 0;
}

int main() {
    int a, b;
    string s;
    //1 October 2001 Monday
    while (cin >> a >> s >> b) { // 注意 while 处理多个 case
        int all = 0;
        for (int i = 2001; i < b; i++) {
            if ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0) {
                all += 366;
            } else {
                all += 365;
            }
        }
        for (int i = 1; i < month(s); i++) {
            all += list3[i - 1];
            if (i == 2 && ((b % 4 == 0 && b % 100 != 0) || b % 400 == 0))
                all++;
        }
        all += a;
        cout << list2[all % 7] << endl;
    }
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

用微笑面对困难:985只有在应届生里面的优势是断层的在社招或者更远的工作中算是后续能力优先级
工作压力大,你会干什么?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务