文章

166

粉丝

68

获赞

855

访问

61.6k

头像
今天是周几 题解:正走倒走都可以走
P1816 华南理工大学机试题
发布于2025年3月9日 10:37
阅读数 204

#include <bits/stdc++.h>
using namespace std;

int date[2][13]={
    {0,31,28,31,30,31,30,31,31,30,31,30,31},
    {0,31,29,31,30,31,30,31,31,30,31,30,31}
};

bool isLeapYear(int year){
    return (year%400==0)||(year%4==0&&year%100!=0);
}

void countdays(int year,int month,int &day){
    int k=0;
    if(isLeapYear(year))k=1;
    for(int i=0;i<month;i++)day+=date[k][i];
}

string a[7]={
    "星期三","星期四","星期五","星期六","星期日","星期一","星期二"
};

string b[7]={
    "星期三","星期二","星期一","星期日","星期六","星期五","星期四"
};
int main() {
	int year,month,day;
	while(scanf("%d,%d,%d",&year,&month,&day)!=EOF){
	    //基准年是2025 1 1,周三
	    countdays(year,month,day);
	    int gap=0;
	    if(year>=2025){
	        for(int i=2025;i<year;i++){
	            if(isLeapYear(i))gap+=366;
	            else gap+=365;
	        }
	        gap+=day;
	        gap--;
	        gap%=7;
	        cout<<a[gap]<<endl;
	    }else{
	        for(int...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发