黑色星期五
在西方,星期五和数字 13都代表着坏运气,两个不幸的个体最后结合成超级不幸的一天。所以,不管哪个月的十三日又恰逢星期五就叫“黑色星期五”。
要求:输入年份,输出是:判断该年是否包含黑色星期五,如包含,给出具体日期
#include<stdio.h>
int dd(int n)
{
if(n==4||n==6||n==9||n==11)
return 30;
else if(n==1||n==3||n==5||n==7||n==8||n==10||n==12)
return 31;
else if(n==2)
return 28;
}
int rd(int n)
{
if(n==4||n==6||n==9||n==11)
return 30;
else if(n==1||n==3||n==5||n==7||n==8||n==10||n==12)
return 31;
else if(n==2)
return 29;
}
int run(int n)
{
if((n%4==0&&n%100!=0)||n%400==0)
return 1;
return 0;
}
int main()
{
int n,i,j;
long long sum;
while(scanf("%d",&n)!=EOF)
{
sum=0;
for(i=1;i<=n;i++)
{
if(i!=n)
{
if(run(i)==1)
sum+=366;
else
sum+=365;
}
else
{
if(run(i)==1)
{
for(j=1;j<=12;j++)
{
sum+=13;
if(sum%7==5)
{
printf("%04d-%02d-13\n",i,j);
sum=sum+rd(j)-13;
}
else
sum=sum+rd(j)-13;
}
}
else
{
for(j=1;j<=12;j++)
{
sum+=13;
if(sum%7==5)
{
printf("%04d-%02d-13\n",i,j);
sum=sum+dd(j)-13;
}
else
sum=sum+dd(j)-13;
}
}
}
}
}
return 0;
}
高斯日记
大数学家高斯有个好习惯:无论如何都要记日记。
他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210
后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?
高斯出生于:1777年4月30日。
在高斯发现的一个重要定理的日记上标注着:5343,因此可算出那天是:1791年12月15日。
高斯获得博士学位的那天日记上标着:8113
请你算出高斯获得博士学位的年月日。
提交答案的格式是:yyyy-mm-dd, 例如:1980-03-21
请严格按照格式,通过浏览器提交答案。
注意:只提交这个日期,不要写其它附加内容,比如:说明性的文字。
#include<stdio.h>
int run(int n)
{
if(n%4==0&&n%100!=0||n%400==0)
return 1;
return 0;
}
int main()
{
int dd[13][2]={{0,0},{31,31},{28,29},{31,31},{30,30}
,{31,31},{30,30},{31,31},{31,31},{30,30},{31,31},{30,30}
,{31,31}};
int i,j,k,n,y,m,d;
while(scanf("%d",&n)!=EOF)
{
y=1777;m=4;d=30;
n-=1;
while(n--)
{
if(dd[m][run(y)]==d)
{
m++;
d=1;
}
else
d++;
if(m>12)
{
m%=12;
y++;
d=1;
}
}
printf("%04d-%02d-%02d\n",y,m,d);
}
return 0;
}
星系炸弹
在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。
每个炸弹都可以设定多少天之后爆炸。
比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。
有一个贝塔炸弹,2014年11月9日放置,定时为1000天,请你计算它爆炸的准确日期。
请填写该日期,格式为 yyyy-mm-dd 即4位年份2位月份2位日期。比如:2015-02-19
请严格按照格式书写。不能出现其它文字或符号。
和高斯日记一样,只是这个是从后一天开始算的。
#include<stdio.h>
int run(int n)
{
if(n%4==0&&n%100!=0||n%400==0)
return 1;
return 0;
}
int main()
{
int i,j,y,m,d,n;
int month[13][2]={{0,0},{31,31},{28,29},{31,31},{30,30},{31,31},{30,30},{31,31},{31,31},{30,30},{31,31},{30,30},{31,31}};
while(scanf("%d",&n)!=EOF)
{
y=2015;m=1;d=1;
for(i=n-1;i>0;i--)
{
d++;
if(d==month[m][run(y)]+1)
{
m++;
d=1;
}
if(m>12)
{
d=1;
m=1;
y++;
}
}
printf("%04d-%02d-%02d\n",y,m,d);
}
return 0;
}