ACSL競賽筆記 Lisp

2021-10-19 09:37:42 字數 542 閱讀 8155

acsl競賽考到的lisp控制符:

1 car:保留list中第一部分(可能為乙個元素,也可能為乙個子list)。

2 cdr:去掉list中第一部分

3 reverse:把list中各個部分倒序輸出

4 setq: 賦值運算子,把乙個變數賦值為乙個list

例題:setq x = (((a (b c) d) e))((b ( c (d e) b)) a)(a b c)((e d) b(a b)(c e d))

求:(cdr(cdr(cdr(reverse(car(reverse(cdr x)))))))

原式 == ((b ( c (d e) b)) a)(a b c)((e d) b(a b)(c e d))

==((e d) b(a b)(c e d))(a b c)((b ( c (d e) b)) a)

==((e d) b(a b)(c e d))

==((c e d)(a b)b(e d))

==((a b)b(e d))

==(b (e d))

==(e d)

ACSL競賽筆記 資料結構各方法彙總

最近學完資料結構,打算把各方法彙總一下以便以後查詢,如有遺漏或錯誤之處,還請各位大佬指教。collection add 把乙個元素加到collection末s尾 addall collection 把另一collection中所有元素加到此collection末尾 clear 清空此collecti...

Lisp學習筆記(二)

對於階乘運算n 採用遞迴形式編寫是非常容易理解的 define factorial n if n 1 1 n factorial n 1 計算6!其執行過程是這樣的 factorial 6 6 factorial 5 6 5 factorial 4 6 5 4 factorial 3 6 5 4 3...

競賽筆記(3)

這是一道典型的貪心題目,用最少的反導系統攔截最多的飛彈。先使用第一套反導系統,從a陣列一路讀取下去,遇到比它大的就增加一套反導系統,並將後續的飛彈讀入到兩套反導系統中的其中乙個,因為此時已經有兩套反導系統,一路迴圈繼續讀取下去,如果遇到飛彈高度兩套反導系統都無法攔截的,那就再加一套,如此一直持續下去...