總時間限制:
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#includeusing
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(intview code);int
main()
,};
int year[2]=;
char day[7][10]=;
intdow;
while(scanf("
%ld",&days),days!=-1
)
return0;
}int judgeyear(int
a)
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日開始逝去的天數,你的任務是給出這一天是哪年...