問題描述
給定一個年份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;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/230625.html
標籤:其他
