文章

119

粉丝

0

获赞

146

访问

8.8k

头像
日期累加 题解:
P1446 北京理工大学机试题
发布于2026年2月4日 21:20
阅读数 53

#include<iostream>
using namespace std;

int days[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

int t;
int year,month,day,d;

bool check(int n)
{
	if(n%4==0&&n%100!=0||n%400==0)
		return true;
	return false;
}

void get_month_2(int n)
{
	if(check(year))
		days[2]=29;
	else
		days[2]=28;
}

void work()
{
	get_month_2(year);
	day+=d;
	while(day>days[month])
	{
		day-=days[month];
		month++;
		if(month>12)
		{
			month=1;
			year++;
			get_month_2(year);
		}
	}
	printf("%d-%02d-%02d\n",year,month,day);
}

int main()
{
	cin>>t;
	while(t--)
	{
		cin>>year>>month>>day>>d;
		work();
	}
	return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发