2964 日曆問題 poj

2022-05-01 23:54:09 字數 2325 閱讀 5176

總時間限制: 

1000ms

記憶體限制: 

65536kb

描述在我們現在使用的日曆中, 閏年被定義為能被4整除的年份,但是能被100整除而不能被400整除的年是例外,它們不是閏年。例如:1700, 1800, 1900 和 2100 不是閏年,而 1600, 2000 和 2400是閏年。 給定從公元2023年1月1日開始逝去的天數,你的任務是給出這一天是哪年哪月哪日星期幾。

輸入輸入包含若干行,每行包含乙個正整數,表示從2023年1月1日開始逝去的天數。輸入最後一行是−1, 不必處理。可以假設結果的年份不會超過9999。

輸出對每個測試樣例,輸出一行,該行包含對應的日期和星期幾。格式為「yyyy-mm-dd dayofweek」, 其中 「dayofweek」 必須是下面中的乙個: "sunday", "monday", "tuesday", "wednesday", "thursday", "friday" 或 "saturday「。

樣例輸入

1730 

1740

1750

1751

-1

樣例輸出

2004-09-26 sunday 

2004-10-06 wednesday

2004-10-16 saturday

2004-10-17 sunday

提示

2000.1.1. 是星期六

這題目有好幾種思路可解決,只是我從天數開始遞減,得到年月日,結果能通過一部分,沒找到問題出在哪了。

貼了兩個**。還比較好理解:

**:第乙個**是我自己寫的,之前提交了乙個沒通過,還以為這題有毒,還有,我把之前的月份計算改為下標遞增求解,測試資料結果都是一樣的,但都是ac 不了,也沒找出問題。

#include#include

using

namespace

std;

int days_of_year[2]=;

int days_of_month[24]=;

char week[7][20]=;

int isleapyear(int

year)

intmain()

weekday=m_days%7

;

while(m_days>=days_of_year[isleapyear(start_year)])//

計算年

while(m_days>=days_of_month[isleapyear(start_year)*12+start_month-1])//

計算月 start_day=start_day+m_days;//

計算天,這個是年月計算後剩下的天數

printf("

%d-%02d-%02d %s\n

",start_year,start_month,start_day,week[weekday]);

}return0;

}

#include #include 

#include

#include

using

namespace

std;

int days_of_year[2] = ;

int days_of_month[24] = ;

char days_of_week[7][20] = ;

intmain()

else

while(day >=days_of_year[is_leap_year])

else

}while(day >= days_of_month[is_leap_year*12 + start_month - 1

])

start_day +=day;

printf(

"%d-%02d-%02d %s\n

",start_year,start_month,start_day,days_of_week[start_week]);

}return0;

}

**二:

#include int judgeyear(int

);int

main()

,};

int year[2]=;

char day[7][10]=;

intdow;

while(scanf("

%ld",&days),days!=-1

)

return0;

}int judgeyear(int

a)

view code

poj2964 日曆問題

time limit 1000ms memory limit 65536kb description 在我們現在使用的日曆中,閏年被定義為能被4整除的年份,但是能被100整除而不能被400整除的年是例外,它們不是閏年。例如 1700,1800,1900 和 2100 不是閏年,而 1600,2000...

1064 日曆問題

時間限制 10 sec 記憶體限制 128 mb 提交 766 解決 412 提交 狀態 討論版 在我們現在使用的日曆中,閏年被定義為能被4整除的年份,但是能被100整除而不能被400整除的年是例外,它們不是閏年。例如 1700,1800,1900 和 2100 不是閏年,而 1600,2000 和...

1006日曆問題

題目描述 在我們現在使用的日曆中,閏年被定義為能被4整除的年份,但是能被100整除而不能被400整除的年是例外,它們不是閏年。例如 1700,1800,1900 和 2100 不是閏年,而 1600,2000 和 2400是閏年。給定從公元2000年1月1日開始逝去的天數,你的任務是給出這一天是哪年...