文章

17

粉丝

507

获赞

8

访问

158.5k

头像
比较容易理解的做法
P1290 上海交通大学/西北工业大学2019机试
发布于2020年5月12日 23:14
阅读数 9.0k

#include <stdio.h>
int isr(int y)
{
    if(y%4==0&&y%100!=0||y%400==0)
        return 1;
    else
        return 0;
}
int main()
{
    int month[12]={31,30,31,30,31,30,31,31,30,31,30,31};
    int y1,m1,d1;
    int y2,m2,d2;
    while(scanf("%4d%2d%2d",&y1,&m1,&d1)!=EOF)
    {

        scanf("%4d%2d%2d",&y2,&m2,&d2);
        int sum=0;
        //一、先求整年之间的天数
        for(int i=y1;i<y2;++i)
        {
            sum+=365;
            if(isr(i))
                sum+=1;
        }
        //二、再求最后一年y2的天数
        //1.整月天数
        for(int i=1;i<m2;++i)
        {
            sum+=month[i-1];
        }
        if(isr(y2)&&m2>2)
            sum+=1;
        //2.尾月零余天数
        sum+=d2;

        //三、最后求出第一年所占天数,减去之
        int r=0;
        //1.整月天数
        for(int i=1;i<m1;++i)
        {
            r+=month[i-1];
        }
        //2.零余天数
        r+=d1;


        //四、汇总啦
        sum-=r;
 ...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发