陳躍峰的《兩個基礎的演算法題目》的解答

2021-04-13 01:06:41 字數 1138 閱讀 3556

1、 編寫方法,生成符合如下要求的乙個一維陣列。

要求如下:

1)        該陣列的長度是20(2分)

2)        其中包含2組1-10之間的所有整數(5分)

3)        每個元素的位置不固定,也就是隨機數組(8分)

4)        該方法的返回值為該一維陣列(2分)

5)        **規範(3分)

2、 編寫方法,返回乙個整數中出現次數最多的數字,如果出現的次數相同,則返回相同次數中數字最大的。例如12121返回1,133221返回3,9返回9

要求如下:

1)        方法宣告(2分)

2)        計算出現次數(5分)

3)        返回正確的數字(10分)

4)        **規範(3分)

第乙個問題解決思路:要求「陣列中包含2組1-10之間的所有整數並且每個元素的位置不固定「這是這個問題最難的部分

,解決這個問題,我想到了兩種方法:一是按陣列順序從0到19填充乙個1到10之間隨機生成的整數,這種方法很難控制生成的

隨機數不重複多次;二是1到10之間的數按順序產生但隨機填充到陣列中,通過判斷陣列是否被填充過,就可以保證10個被完全填充。

int * generatarray()

return intarray;

}第二個問題解決思路:剛看到這個題目覺得可能有兩種解決思路,其一是講這個整型轉換成字元型,判斷每個字元

的ascii碼或直接比較是否相等來找到重複最多的字元,然後在將這個字元轉換成整型返回。其二是按位分離整型資料的

每一位,判斷哪乙個數字重複的最多。我這裡用的是第二個思路,分離數字是採用的方法是除以位基然後做差的方法。比如說分離

個位,首先見整型資料處以10後得到去掉個位的整型資料再將這個資料乘以10,然後與原來的資料做差就得到了個位的數字。

int countnumber(unsigned int intorign)

; //記錄每個數字出顯的次數

int n=0; //記錄給定整型的位數

while(!(intorign/pow(10,n))) n++; //確定整型的位數

for(int i=0;i按位分離乙個數是有更好的方法的,我上面講的是一中拙略的方法,將數n與10求餘就可以很好的分離。

綜合佈線專案技術交底的兩個目的

在弱電施工工程中,綜合佈線專案組內部的技術交底工作有兩個目的,下面來一起看看吧。一是為了明確所承擔施工任務的特點 技術質量要求 系統的劃分 弱電施工工藝 弱電施工要點和注意事項等,做到心中有數,以利於有計畫 有組織地多快好省地完成任務,工程專案組長可以進一步幫助技術員理解消化圖紙。二是對工程技術的具...

兩個有趣的演算法問題

2019年2月19日註 這篇文章原先發在自己github那邊的部落格,時間是2017年2月5日 一共是兩道題,第一道是上學期的matlab考試的時候碰到的,另外一道是師弟發的一道數學題的學習筆記,於是找了個時間想了一下,結合網上找到的資料參考。用的是matlab語言。1.乙隻青蛙,每次可以選擇跳1級...

題目1519 合併兩個排序的鍊錶

題目描述 輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。hint 請務必使用鍊錶。輸入 輸入可能包含多個測試樣例,輸入以eof結束。對於每個測試案例,輸入的第一行為兩個整數n和m 0 n 1000,0 m 1000 n代表將要輸入的第乙個鍊錶的元素的個數...