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

今年的第几天?

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")

#悬赏#
全部评论

相关推荐

双非坐过牢:非佬,可以啊10.28笔试,11.06评估11.11,11.12两面,11.19oc➕offer
点赞 评论 收藏
分享
10-11 17:45
门头沟学院 Java
走吗:别怕 我以前也是这么认为 虽然一面就挂 但是颇有收获!
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务