题解 | #今年的第几天?#

今年的第几天?

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

#include<bits/stdc++.h>

using namespace std;

void NextDay(int &year,int &month,int &day) {
	// & 出现在定义or形参当中 表示引用的意思 出现在其他位置,表示取地址
	// 存储一下 月份和天数的对应关系
	int dayOfMonth[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
	int isLeap; // 是否是闰年
	isLeap = year % 400 == 0 || year % 4 == 0 && year % 100 != 0;
	if (isLeap) {
		dayOfMonth[2] = 29;
	} else {
		dayOfMonth[2] = 28;
	}

	++day;
	if (day > dayOfMonth[month]) {
		day = 1;
		++month;
	}
	if (month > 12) {
		month = 1;
		++year;
	}
}

int main() {
	int year;
	int month;
	int day;
	while(scanf("%d%d%d",&year,&month,&day)!=EOF) {
		int next=1;
		int cur_month=1;
		int cur_day=1;
		while(true) {
			if(cur_month==month&&cur_day==day) {
				break;
			}
			NextDay(year,cur_month,cur_day);
			next++;
		}
		printf("%d\n",next);
	}
	return 0;
}

全部评论

相关推荐

ArisRobert:统一解释一下,第4点的意思是,公司按需通知员工,没被通知到的员工是没法去上班的,所以只要没被通知到,就自动离职。就是一种比较抽象的裁员。
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务