文章

64

粉丝

100

获赞

4

访问

37.4k

头像
日期累加 题解:
P1446 北京理工大学机试题
发布于2024年3月11日 15:25
阅读数 645

1446:为何正确率一直是75%,大佬帮忙看一下,谢谢!

#include <bits/stdc++.h>
 using namespace std;
 int main()
 {
     int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
     int m,year,month,day,days;
     scanf("%d",&m);
     while(m--)
     {
         scanf("%d %d %d %d",&year,&month,&day,&days);
         days=days+day;
         while(days>a[month])
         {
             if(year%4==0&&year%100!=0||year%400==0)
                 a[2]=29;
             else
             &nb...

登录查看完整内容


登录后发布评论

5 条评论
小酒
2024年3月11日 17:17

#include <bits/stdc++.h>
 using namespace std;
 int main()
 {
     int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
     int m,year,month,day,days;
     scanf("%d",&m);
    
     while(m--)
     {
         scanf("%d %d %d %d",&year,&month,&day,&days);
        if(year%4==0&&year%100!=0||year%400==0)
         a[2]=29;
     else
         a[2]=28;
          days=days+day;
         while(days>a[month])
         {
             days=days-a[month];
             month++;
             if(month>12)
             {
                 year++;
                 month=month-12;
            }
            if(year%4==0&&year%100!=0||year%400==0)
                 a[2]=29;
             else
                 a[2]=28;
         }
         printf("%d-%02d-%02d\n",year,month,days);
     }
 }

赞(0)
snake VIP
2024年3月11日 16:07

你的days会减到0,但是没有0号这个说法

赞(0)

小酒 : 回复 snake: days相减的前提是days>a[month],所以不会出现days减到零的情况。

2024年3月11日 16:16

snake : 回复 小酒: 闰年的时候,你应该在外面先判断,否则会减到0

2024年3月11日 16:29

小酒 : 回复 snake: !!我懂你的意思了,谢谢你!比心

2024年3月11日 16:38