宣告:這些題目都是從網際網路上蒐集而來,有些解法屬於原創,有些解法屬於網友
的智慧型,從部落格上找來的解法都會給出鏈結,論壇上的討論就不給出鏈結了。
1. 不用中間變數,實現strlen函式。(strlen為c語言中求給字串長度庫函式)
int strlen(const char *str)
解法比較明顯,不讓用臨時變數,那就用遞迴了。
2. 寫乙個函式,找出乙個陣列中第二大的數,複雜度o(n)
3. 輸出乙個形如下面的數字矩陣(n=4)
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
此題的關鍵是找出其數學規律。源**如下:
4.輸出如下蛇行整數矩陣
n = 3:
7 8 9
6 1 2
5 4 3
n = 4:
7 8 9 10
6 1 2 11
5 4 3 12
17 16 15 13
源**實現:
5. 螺旋數字佇列
21 22 ……
20 7 8 9 10
19 6 1 2 11
18 5 4 3 12
17 16 15 14 13
以數字1為原點,x軸向右為正,y軸向上為正,建立數軸
那麼數字2的座標為(1,0),數字9的座標為(1,1),數字5的座標為(-1,-1)
現在程式設計實現輸入一點(x,y),輸出這點在數軸上對應的值
解析:1.通過計算給定點(x,y)的座標先計算出此點所在的圈
2·計算這個圈四個角上的頂點的數值跟座標
3·比較給定點與這四個頂點的座標,根據這四個頂點的數值計算給定點的數值
源**:
6. 寫出atol的實現**
7:寫乙個函式foo: (從ponba的討論組裡看到這個題,覺得挺有意思的)
void foo(int i, int j)
列印出i到j之間的所有整數。不用任何迴圈和遞迴語句。
題目19 一些簡單的演算法練習題 1
1.比較兩個字串,用o n 時間和恒量空間。源 2.假設你有乙個用1001個整數組成的陣列,這些整數是任意排列的,但是你知道所有的整數都在 1到1000 包括1000 之間。此外,除乙個數字出現兩次外,其他所有數字只出現一次。假設你只 能對這個陣列做一次處理,用一種演算法找出重複的那個數字。如果你在...
題目29 一些簡單的演算法練習題(3)
problem 1.乙個完全二叉樹有386個葉子節點,問它總共有多少個葉子節點。分析 386個葉子節點,那麼它的上層可以確定的非葉子節點有多少個呢?可以用試探法得到,它上面應該有7層,即非葉子節點數應該有2 8 1 255個。根據總的葉子節點數,可以知道第8層一定有葉子節點,可以設第 8層非葉子節點...
一些簡單的程式設計練習題
每當成為入門cs課程 學生們學習程式語言的課程 的助教時,都困於提出好的練習題。project euler和類似的問題通常對初學者來說來難了,尤其是對於那些沒有很強數學背景的同學。在這篇文章中,adrian neumann 收集了一些從初級到高階逐級困難的練習題,適合剛開始學習程式設計的初學者。當有...