CCF——日期計算
阿新 • • 發佈:2019-01-02
問題描述
給定一個年份y和一個整數d,問這一年的第d天是幾月幾日
注意閏年的2月有29天,滿足下面條件之一的是閏年:
(1)年份是4的整數倍,而且不是100的整數倍
(2)年份是400的整數倍
輸入格式
輸入的第一行包含一個整數y,表示年份,年份在1900到2015之間
輸入的第二行包含一個整數d,在1至365之間
輸出格式
輸出兩行,每行一個整數,分別表示答案的月份和日期
樣例輸入
2015
80
2000
40
樣例輸出
3
21
2
9
解題思路
此題思路比較簡單,先判斷是閏年還是平年,再根據所輸入的日期和每個月的固定天數進行比較,如果大,則減去,如果小,則就是答案,不過需要注意的是,評分標準上,必須要把所有條件用上,如上述判定閏年的兩個條件必須用上,不然答案就算對了,也無法給滿分。 上程式碼
Code
#include <iostream>
using namespace std;
int a1[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
int main()
{
int i, day = 0;
int date, year;
while (cin >> year >> date)
{
if ((year % 400==0)||(year%4==0&&year%100!=0))
{
a1[2] = 29 ;
}
int s = 0;
for (i = 1; i < 13; i++)
{
s += a1[i];
if (date < s)
{
s -= a1[i];
day = date-s;
break;
}
}
cout << i << endl;
cout << day << endl;
}
return 0;
}