日期计算 201509-2

问题描述
  给定一个年份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;
    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值