当前位置:网站首页>日期计算 201509-2

日期计算 201509-2

2020-12-07 08:57:32 osc_z7z4vuvs

问题描述
  给定一个年份y和一个整数d,问这一年的第d天是几月几日?
  注意闰年的2月有29天。满足下面条件之一的是闰年:
  1) 年份是4的整数倍,而且不是100的整数倍;
  2) 年份是400的整数倍。
输入格式
  输入的第一行包含一个整数y,表示年份,年份在1900到2015之间(包含1900和2015)。
  输入的第二行包含一个整数d,d在1至365之间。
输出格式
  输出两行,每行一个整数,分别表示答案的月份和日期。
样例输入
2015
80
样例输出
3
21
样例输入
2000
40
样例输出
2
9




















蠢办法只得了70分 ,后来想想原因 如果输入d=365那么月份就是13了,不满足题意,然后随意将30改成31,变成60分,改成29,变成50分。。。看来这平台对于这种可数的结果是按照正确的个数给分的。
代码段:


```cpp

```cpp
#include <iostream>

using namespace std;

int main()
{
   
   
    int run[12]= {
   
   31,29,31,30,31,30,31,31,30,31,30,31};
    int ping[12]= {
   
   31,28,31,30,31,30,31,31,30,31,30,31};
    int y,d,yue;
    cin>>y;
    cin>>d;
    int a[12];

    for(int i=0; i<12; i++)
    {
   
   
        if((y/4)==0&&(y/100)!=0&&(y/400==0))
        {
   
   
            a[i]=run[i];
        }
        else
        {
   
   
            a[i]=ping[i];
        }

    }

    yue=d/30+1;
    cout<<yue<<endl;
    switch(yue)
    {
   
   
    case 1:
        cout<<d;
        break;
    case 2:
        cout<<(d-a[0]);
        break;
    case 3:
        cout<<(d-(a[0]+a[1]));
        break;
    case 4:
        cout<<(d-(a[0]+a[1]+a[2]));
        break;
    case 5:
        cout<<d-(a[0]+a[1]+a[2]+a[3]);
        break;
    case 6:
        cout<<d-(a[0]+a[1]+a[2]+a[3]+a[4]);
        break;
    case 7:
        cout<<d-(a[0]+a[1]+a[2]+a[3]+a[4]+a[5]);
        break;
    case 8:
        cout<<d-(a[0]+a[1]+a[2]+a[3]+a[4]+a[5]+a[6]);
        break;
    case 9:
        cout<<d-(a[0]+a[1]+a[2]+a[3]+a[4]+a[5]+a[6]+a[7]);
        break;
    case 10:

        cout<<d-(a[0]+a[1]+a[2]+a[3]+a[4]+a[5]+a[6]+a[7]+a[8]);
        break;
    case 11:
        cout<<d-(a[0]+a[1]+a[2]+a[3]+a[4]+a[5]+a[6]+a[7]+a[8]+a[9]);
        break;
    case 12:
        cout<<d-(a[0]+a[1]+a[2]+a[3]+a[4]+a[5]+a[6]+a[7]+a[8]+a[9]+a[10]);
        break;
    default:
        break;
    }
}

版权声明
本文为[osc_z7z4vuvs]所创,转载请带上原文链接,感谢
https://my.oschina.net/u/4325541/blog/4777347