题目地址:http://ac.jobdu.com/problem.php?cid=1040&pid=8
C语言源码:
#include<stdio.h>
int leap(int year)
{
if((year%4==0&&year%100!=0)||year%400==0)
return 1;
else
return 0;
}
void date(int num,int year,int *month,int *day)
{
int i,sum;
i=1;
sum=1;
while(sum!=num)
{
*day=*day+1;
sum++;
if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
{
if(*day>31)
{
*month=*month+1;
*day=1;
i++;
}
}
else
{
if(i!=2)
{
if(*day>30)
{
*month=*month+1;
*day=1;
i++;
}
}
else
{
if(leap(year))
{
if(*day>29)
{
*month=*month+1;
*day=1;
i++;
}
}
else
{
if(*day>28)
{
*month=*month+1;
*day=1;
i++;
}
}
}
}
}
}
int main()
{
int year,num,*month,*day,a,b;
while(scanf("%d %d",&year,&num)!=EOF)
{
a=1;
b=1;
day=&a;
month=&b;
date(num,year,month,day);
if(year>=1000)
printf("%d-",year);
else
if(year>=100)
printf("0%d-",year);
else
if(year>=10)
printf("00%d-",year);
else
printf("000%d-",year);
if(*month<10)
printf("0%d-",*month);
else
printf("%d-",*month);
if(*day<10)
printf("0%d\n",*day);
else
printf("%d\n",*day);
}
}