第六届蓝桥杯省赛(c++)B组 星系炸弹

时间:2022-09-09 23:39:14

对于数学学渣的我来说,如果算这道题也还能说得过去,不过还是编程来的更精确点。第六届蓝桥杯省赛(c++)B组 星系炸弹

星系炸弹

在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。
每个炸弹都可以设定多少天之后爆炸。
比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。
有一个贝塔炸弹,2014年11月9日放置,定时为1000天,请你计算它爆炸的准确日期。

请填写该日期,格式为 yyyy-mm-dd  即4位年份2位月份2位日期。比如:2015-02-19
请严格按照格式书写。不能出现其它文字或符号。

考虑到闰年,在考虑到循环,就轻松了第六届蓝桥杯省赛(c++)B组 星系炸弹

#include<stdio.h>
int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int main()
{
	int y,m,d;
	int t;
	y=2014;
	m=10;
	d=9;
	t=1000;
	while(t>0)
	{
		if(t-a[m]>=0)
		{
		    t=t-a[m]+d;
			m=(++m)%12;
			d=0;	
		}
	    else if(t-a[m]<0)
	    {
	    	d=d+t;
	    	printf("%d-%02d-%02d\n",y,m+1,d-1==0?a[m]:d-1);
	    	t=0;
		}
		if(m%12==0) y++;
		if(t==0&&d==0) {
		printf("%d-%02d-%02d\n",y,(m+12-1)%12+1,a[(m+12-1)%12+1]-1);
		break;
	    }
	}
	
	return 0;	
 }