杭电4515

来源:互联网 发布:淘宝交易指数在哪里看 编辑:程序博客网 时间:2024/06/16 11:38

这是一道关于时间的倒退的题目,但是是年月日,而昨晚做了一道也是关于时间的倒退,但是是时分秒的题目,重在分析,

#include<stdio.h>
int runnian(int m)
{
    if(m%4==0&&m%100!=0||m%400==0)
        return 1;
    else
        return 0;
}
int main()
{
    int t,n,i,year,day,month,r;
    int a[2][13]= {0,31,28,31,30,31,30,31,31,30,31,30,31,
                   0,31,29,31,30,31,30,31,31,30,31,30,31
                  };
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d",&n);
        year=2013;
        day=24;
        month=3;
        day+=n;
        while(1)
        {
            r=runnian(year);
            if(day>a[r][month])
            {
                day-=a[r][month];
                month+=1;
                if(month>12)
                {
                    month-=12;
                    year+=1;
                }
            }
            else
                break;
        }
        printf("%04d/%02d/%02d",year,month,day);
        year=2013;
        day=24;
        month=3;
        day-=n;
        while(1)
        {
            r=runnian(year);
            if(day<1)//
            {
                month-=1;//
                if(month<1)//
                {
                    month=12//;
                    year-=1;//
                }
                day+=a[r][month];//这几行要特别注意,是往后退,值得注意,只要举出一个数,模拟一下就可以了!应该就能写出来了!
            }
                 else
                     break;
        }
        printf(" %04d/%02d/%02d\n",year,month,day);
        //return 0;
    }
    return 0;
}

原创粉丝点击