题解 | #Day of Week#

Day of Week

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

#include <iostream>
#include <string.h>

using namespace std;

int daytab[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 x){
	return (x % 4 ==0 && x % 100 != 0) || (x % 400 == 0);
}

char week_name[7][20]={
    "Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"
};

char month_name[13][20]={
    "","January","February","March","April","May","June","July","August",
    "September","October","November","December"
};

int main(){
	int d,y,m,sum = 0;
	char mon[10];
	scanf("%d%s%d",&d,&mon,&y);
	
	for(int i = 0;i < 14;i ++){
		if(strcmp(month_name[i],mon) == 0){
			m = i;
			break;
		}
	}
	
	for(int i = 1;i < y;i ++){
		if(isLeapYear(i)){
			sum += 366;
		}else sum += 365;
	}
	
	
	for(int i = 0;i < m;i ++){
		sum += daytab[isLeapYear(y)][i];
	}
	
	
	sum = sum + d;
	
	cout << week_name[(sum % 7)] << endl;
	return 0;
}

全部评论

相关推荐

09-13 14:38
已编辑
广西大学 Java
何青司:第一个项目感觉可以写好多东西,但只是简单的罗列技术和功能,我看到一种推荐写法是使用xxx实现(或解决)xxx功能(或问题)。再可以添加一些数据,例如实习经历你写到输出相关报告,前面也提到了文档撰写,可以加上数量,数量少则可以写“梳理出8000字文档资料”。查询数据库优化和缓存策略也可以加上数据对比,我的简历就写有一条“使用Redis缓存首页用户信息列表,将接口响应时长从4.5秒优化到47毫秒左右”,数据对比就凸显出缓存的重要性了。以上只是我的一点拙见。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务