聯發科嵌入式開發筆試 一年中的第幾天

2021-10-08 11:13:39 字數 1591 閱讀 8247

輸入格式為2020-01-03;輸出是第3天,題目提示了閏年的計算方法為公曆年份是4的倍數的,且不是100的倍數,為普通閏年,或者是400的倍數為世紀閏年。

題記:天數從一月開始算,後面逐天累加,特殊的閏年在2月多了一天。

1.所以首先我們自己記錄乙個正常年份(非閏年)的天數累加表以便我們在知道月份和天數的情況下直接推算出這是一年中的第幾天

daycount = [0,31,59,90,120,151,181,212,243,273,304,334]

2.當判斷該年為閏年,就要多加一天,在**加呢?如果輸入2020-02-29,不加限制,參照上一點列出的累加表,那麼就會多算出一天,所以閏年的時候這一天應該加在當輸入月份大於2月的月份

今天先給出python**,c++**和記憶中其他的題目後續更新:

class

solution

:def

dayofyear

(self, date:

str)

->

int:

daycount =[0

,31,59

,90,120

,151

,181

,212

,243

,273

,304

,334

] temp = date.split(

"-")

for i in

range

(len

(temp)):

temp[i]

=int

(temp[i]

) res = daycount[temp[1]

-1]+temp[2]

if temp[1]

>2:

if(temp[0]

%4==0

and temp[0]

%100!=0

)or temp[0]

%400==0

: res +=

1return res

c++**,大家可以幫忙優化,本來想用strtok這個方法,但是用不清楚就放棄了,用字串切割來的也挺快,這裡給出的**是leetcode上的形式,聯發科筆試題是要自己處理輸入的,可以粗暴的用cin>>date;讀入整個字串再進行處理。

class

solution

int month =

(date[5]

-'0')*

10+date[6]

-'0'

;int day =

(date[8]

-'0')*

10+date[9]

-'0'

;int res =0;

int daycount[12]

=;res = daycount[month-1]

+day;if(

((year%4==

0)&&(year%

100!=0)

)||(year%

400==0)

)}return res;}}

;

打卡day2

9 6中興嵌入式軟體開發筆試

乙個舞蹈學院提供早晚課程。每個加入該學院的人都會獲得乙個唯一的id。人們可以選擇任意數量的舞蹈形式。有些在任何舞蹈形式上都不是很完美的人早晚課程都參加。舞蹈教練為參加課程的所有人員準備了乙份早晚課程的單獨列表。人員的id在列表中重複的次數與他 她選擇的舞蹈形式的數量相同。該學院計畫在年度活動中展示各...

嵌入式開發中的一些細節

從事開發一年多,發現到一些小細節,會影響到自己開發的效率,特總結如下,以免犯錯 1.標準c中str系列的函式中,0 有特殊的含義 字串結束 所以如果要操作具有0x00 有實際意義 的字串,不應該用該系列的函式。例 有字串 0nocookie 0nocache 0 本義是想用 0 來表示分隔符,分隔出...

嵌入式開發中遇到的幾個問題(一)

以下遇到的問題,開發環境都是基於s3c2440 1 在start.s檔案中,用彙編寫初始化程式時,為什麼加死迴圈?假設程式只有十幾位元組,那麼把bin檔案燒到nor或者nand中,那這十幾位元組之後的內容,是不確定的,所以只能死迴圈,所以只能死迴圈,否則後果無法預料。2 ldr r0,0x12345...