[ccf备考]201509-2日期计算

问题描述

  给定一个年份y和一个整数d,问这一年的第d天是几月几日?
  注意闰年的2月有29天。满足下面条件之一的是闰年:
  1) 年份是4的整数倍,而且不是100的整数倍;
  2) 年份是400的整数倍。

输入格式

  输入的第一行包含一个整数y,表示年份,年份在1900到2015之间(包含1900和2015)。
  输入的第二行包含一个整数dd在1至365之间。

输出格式

  输出两行,每行一个整数,分别表示答案的月份和日期。

样例输入

2015
80

样例输出

3
21

样例输入

2000
40

样例输出

2
9

 

这个题总体来说是比较简单的,只需要先判断是否为闰年,最后根据闰年情况分为两类进行判断,然后12个月作为一个数组,判断d减去每个月后剩余天数与下一个月的比较情况即可,经过多次调试,代码已经成功AC,下面附代码:

#include
#include
using namespace std;
int isrn(int n){
    if((n%4==0&&n%100!=0)||n%400==0)
    return 1;
    else 
    return 0;
}
int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int b[12]={31,29,31,30,31,30,31,31,30,31,30,31};

int main(){
    int y,d,sum=0;
    cin>>y>>d;
    int month=1,date=1;
    if(isrn(y)==1){
        for(int i=0;i<12;i++){
        if(d-b[i]>0){
            d=abs(d-b[i]);
            month++;
        }
        if(d-b[i]==0&&i!=0){
            cout<0){
            d=abs(d-a[i]);
            month++;
        }
        if(d-a[i]==0&&i!=0){
            cout<

 

如果有问题的话欢迎提出

你可能感兴趣的:(CCF备考)