3.一年中的第幾天
4.列印日期
5.日期差值
學而不思則罔,做題的同時做好歸納總結才能更好的提公升自己,這次將日期類的題目總結歸納一下
題目描述
設計乙個程式能計算乙個日期加上若干天後是什麼日期。
輸入描述:
輸入第一行表示樣例個數m,接下來m行每行四個整數分別表示年月日和累加的天數。
輸出描述:
輸出m行,每行按yyyy-mm-dd的個數輸出。
牛客網題目鏈結
將需要累積的天數加到原來的天數上邊,然後再進行按照日期的特點進行"加法進製";
首先,我們需要知道每個月的天數,才能進行加法進製,每個月的天數可以定義乙個陣列,只要知道月份就返回對應的天數,這裡需要注意的是當月份是2月份時,天數會有所變化;
閏年二月29天,平年二月28天,4年一潤百年不潤,四百年再潤;
舉例如下:
//閏年且是二月
return29;
return arr[month];}
void
getday
(int _year,
int _month,
int _day,
int num)
}printf
("%4d-%02d-%02d\n"
,_year,_month,day)
;//%02d:兩個字元右對齊,不過不夠用0補上
}int
main()
}題目描述根據輸入的日期,計算是這一年的第幾天。
測試用例有多組,注意迴圈輸入。
輸入描述:
輸入多行,每行空格分割,分別是年,月,日
輸出描述:
成功:返回outday輸出計算後的第幾天;
牛客網題目鏈結
求一年中的第幾天,我們需要將所有的天數都加起來,那麼就需要知道當前月份的天數,然後加起來。
這裡就和上面的題正好是相反的,上題是需要"進製",這裡是需要"借位"。
舉例如下:
//閏年且是二月
return29;
return arr[month];}
intmain()
cout<
}}題目描述給出年分m和一年中的第n天,算出第n天是幾月幾號。
輸入描述:
輸入包括兩個整數y(1<=y<=3000),n(1<=n<=366)。
輸出描述:
可能有多組測試資料,對於每組資料,
按 yyyy-mm-dd的格式將輸入中對應的日期列印出來。
牛客網題目鏈結
給出年份和天數,要求計算幾月幾號,經過前面兩題很自然的就想到了把天數減下去,把月份加上來。
舉例如下:
//閏年且是二月
return29;
return arr[month];}
void
(int year,
int day)
printf
("%4d-%02d-%02d\n"
,year,month,day);}
intmain()
return0;
}題目描述:有兩個日期,求兩個日期之間的天數,如果兩個日期是連續的我們規定他們之間的天數為兩天
輸入描述:
有多組資料,每組資料有兩行,分別表示兩個日期,形式為yyyymmdd
輸出描述:
每組資料輸出一行,即日期差值
牛客網題目鏈結
求當前兩個日期的差值,我們可以將日期進行拆分,年和年進行比較,一年365天閏年多一天,利用迴圈從小的年份一年一年往上加,在這期間判斷是否是閏年即可得到對應的年份「日期」,再將對應的"零散"天數差值計算出來;
如果年大月小或者年小月大,則相差的日期=年的差值的絕對值-"零散"日期的絕對值,反之則相加,最後根據題目要求再加上一;
舉例如下:
劍指offer DP類題目彙總
大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項。n 39.斐波那契數列就是前兩個數的和等於第三個數,乙個典型的遞迴思想的數列,所以這道題也是用遞迴的思想來解決.但是只是遞迴的話,會產生很多的冗餘,因為遞迴會把每種情況算很多遍,比如算n 5的時候,會把前面n 4.3.2....
LeetCode題目彙總
leetcode官網 以下都是我自己做過的題目,答案也全是自己做的,和網上大牛的最優解還是有差距。我的leetcode主頁 題名 難度備註 1兩數之和簡單2 兩數相加中等3 無重複字元的最長子串中等4 尋找兩個有序陣列的中位數困難7 整數反轉 簡單19 刪除鍊錶的倒數第n個節點 中等26 刪除排序陣...
CCF CSP題目彙總
ccf csp首頁 以下都是我自己做過的題目,答案也全是自己做的,和網上大牛的最優解還是有差距。試題編號 試題名稱 最高得分 201912 1 報數100 201912 2 站選址 100201909 1 小明種蘋果 100201909 2 小明種蘋果 續 100201909 3 字元畫201903...