問題描述
已知2023年11月11日是星期五,問yyyy年mm月dd日是星期幾?注意考慮閏年的情況。尤其是逢百年不閏,逢400年閏的情況。
輸入格式
輸入只有一行
yyyy mm dd
輸出格式
輸出只有一行
w樣例輸入
2011 11 11
樣例輸出
5資料規模和約定
1599 <= yyyy <= 2999 1 <= mm <= 12 1 <= dd <= 31,且確保測試樣例中yyyy年mm月dd日是乙個合理日期 1 <= w <= 7,分別代表周一到週日
思路解析
#include
using
namespace std;
// 判斷指定年份是否為閏年,true為閏年,false為平年
bool
leapyear
(int year)
return
false;}
// 返回指定月份的天數
intdays
(int mouth,
bool leap)
return30;
}int
main()
else
if(year ==
2011
)else
if(mouth ==11)
else
if(day ==11)
}}int distance =0;
// 計算輸入日期與2011-11-11相差的天數
// 日期在2011-11-11之後的處理
if(flag)
else}if
(year ==
2011
) distance +
= day -11;
// 統計日期相差的天數
}else
distance +
= day +(30
-11)+
31;// 2023年剩下的天數 30 - 11 + 31,再加輸入日期帶來的天數差距
}int increment = distance %7;
// 星期的增量
int res = increment +5;
// 記錄最終結果
if(res >7)
res %=7
; cout << res;
return0;
}// 日期在2011-11-11之前
else
else}if
(year ==
2011
) distance +=11
- day;
// 日期帶來的天數差距
}else
distance +
=315
- day;
// 315為2023年的天數差距,即10個月加11天
}int increment = distance %7;
int res =
5- increment;
if(res <1)
res +=7
; cout << res;
return0;
}}
雖然**有點長,思路還是清晰的。 C 藍橋杯 ADV 127 日期計算
問題描述 已知2011年11月11日是星期五,問yyyy年mm月dd日是星期幾?注意考慮閏年的情況。尤其是逢百年不閏,逢400年閏的情況。輸入格式 輸入只有一行 yyyy mm dd 輸出格式 輸出只有一行 w資料規模和約定 1599 yyyy 2999 1 mm 12 1 dd 31,且確保測試樣...
藍橋杯 ADV 127 日期計算(試題解析)
提交此題 評測記錄 資源限制 時間限制 1.0s 記憶體限制 256.0mb 問題描述 已知2011年11月11日是星期五,問yyyy年mm月dd日是星期幾?注意考慮閏年的情況。尤其是逢百年不閏,逢400年閏的情況。輸入格式 輸入只有一行 yyyy mm dd 輸出格式 輸出只有一行 w資料規模和約...
藍橋杯 2014 3 日期差
歷史上,不同的人類聚居地可能有不同的曆法,因而記錄下來的資料中日期的換算就很麻煩。幸好今天我們統一使用公元紀年法。當然,這種曆法對求兩個日期差多少天也不是十分簡便,但畢竟是可以忍受的。下面的程式計算了兩個日期的差值,兩個日期都使用公元紀年法。請分析程式邏輯,並推斷劃線部分缺失的 int to day...