洛谷:P5716日份天数

发布时间 2023-04-22 19:58:16作者: hujiaohuxue_8

题目描述

输入年份和月份,输出这一年的这一月有多少天。需要考虑闰年。

输入格式

输入两个正整数,分别表示年份 \(y\) 和月数 \(m\),以空格隔开。

输出格式

输出一行一个正整数,表示这个月有多少天。

样例 #1

样例输入 #1

1926 8

样例输出 #1

31

样例输入 #2

2000 2

样例输出 #2

29

提示

数据保证 \(1583 \leq y \leq 2020\)\(1 \leq m \leq 12\)

以下是答案

#include <iostream>
using namespace std;

//判断是否闰年
int rn(int a){  
	return a%400==0||a%4==0&&a%100!=0;
}

int main(){
    int y,m,d;
    int day;
    cin>>y>>m;
    //判断月份
    if(m == 2 && rn(y)){
        day = 29;
        cout<<day;
    }
    if(m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12){
        day = 31;
        cout<<day;
    }
    if(m == 2 || m == 4 || m == 6 || m == 9 || m == 11){
        day = 30;
        cout<<day;
    }
    else{
        day = 28;
        cout<<day;
    }
    return 0;
}

之后WA了
image

这才是正确的写法!!!

#include <iostream>
using namespace std;

//判断是否闰年
int rn(int a){  //是闰年
	return a%400==0||a%4==0&&a%100!=0;
}

int main(){
    int y,m,d;
    int day;
    cin>>y>>m;
    //判断月份
    if(m == 2){
    	if(rn(y)){
    		day = 29;
        	cout<<day;
		} 
		else{
			day = 28;
			cout<<day;
		}       
    }
    if(m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12){
        day = 31;
        cout<<day;
    }
    if(m == 4 || m == 6 || m == 9 || m == 11){
        day = 30;
        cout<<day;
    }
    return 0;
}

不错!AC了
image