题解 | #今年的第几天?#

今年的第几天?

https://www.nowcoder.com/practice/ae7e58fe24b14d1386e13e7d70eaf04d

#include <cstdio>
#include <iostream>
using namespace std;
int flag=0;  //标志闰年

int moth(int M,int flag){
    int num;
    if(M==1||M==3||M==5||M==7||M==8||M==10||M==12){  //大月
        num=31;
    }else if (M==2) {  //2月
        if (flag==1) {  //闰年
            num=29;
        }else{  //非闰年
            num=28;
        }
    }else{  //小月
        num=30;
    }
    return num;
}

int main() {
    int a, b,c; //a为年份,b为月份,c为日
    while (cin >> a >> b>>c) { // 注意 while 处理多个 case
        int sum=0;  //总计天数
        if(a%4==0&&a%100!=0||a%400==0){    //若为闰年
            flag=1;
        }
        for(int i=1;i<b;i++){ //循环加上b之前月份的天数
            sum+=moth(i, flag);
        }
        sum+=c;  //总天数加上日
        printf("%d\n",sum);  //输出
    }
}
// 64 位输出请用 printf("%lld")

#悬赏#
全部评论

相关推荐

AI牛可乐:哇,听起来你遇到了什么挑战呢!🐮牛可乐在这里,虽然小,但是勇敢又聪明,想听听你的具体情况哦!如果你愿意的话,可以点击我的头像给我私信,我们可以一起想办法应对挑战,好不好呀?🌟🎉
点赞 评论 收藏
分享
10-25 23:12
门头沟学院 Java
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务