1. 程式人生 > 其它 >演算法構造——2018華科上機

演算法構造——2018華科上機

1.輸入一個由英文字母和空格組成的句子,可能會出現一個或多個空格,不區分大小寫

(1)輸出該句子中字母的個數(10分)

(2)輸出該句子中單詞的個數(10分)

(3)輸出該句子中出現次數最多的字母和次數(20分)

例如:輸入:This Is my love

輸出:

字母個數:12,

單詞個數:4,

出現次數最多的字母:i s,

出現次數:2

設計思路:可以嘗試使用java中String中的split方法,現按照空格將整個句子切分,然後統計String陣列中的各個元素,可以使用toCharArray方法,將每個元素再次分割成char然後按要求統計就行。

如果不讓用API那可以嘗試自己編寫一個split方法,可以使用佇列,依次遍歷陣列(預設整個句子是一個char陣列)遇到空格就對佇列進行一次清空操作,每次清空出來的元素可以進行統計,然後拼成串作為新陣列的一個元素,這樣(3)(2)(1)問可以在出隊過程中一次全部完成。

2.輸入一個十二進位制數(a和b代表10和11),按要求輸出。

(1)第一行輸出每一位的十進位制下的數。(10分)

(2)第二行輸出這個十二進位制數的十進位制數。(10分)

(3)第三行輸出轉換後的十進位制數在記憶體中的每一位二進位制數。(共4個位元組,每個位元組以空格隔開)。(10分)

例如:

輸入:a2

輸出:10 2

12

00000000 00000000 00000000 00001100

設計思路:(1)如果這個數是以String形式給出,可以把String拆分成一個char陣列,然後對陣列中每個元素進行判斷,這樣可以得到每位對應的十進位制數字,在得到每位對應的十進位制數之後,可以把這些數存入一個int陣列,下標用來對應第i位字元(個、十、百位),值就是該位的值。

(2)對int陣列進行遍歷,並計算一個十進位制的結果t,t=t+int[i]*12^i,最後的t就是結果

(3)對上一步的結果進行短除法,就是十進位制轉2進位制的方法。每次計算count++,最後如果count不足32就在結果前便補0,知到count達到32,count初始為0。

3.輸入一個帶除法運算的字串,輸出運算結果。(30分)

(1)若能除盡,則直接輸出

(2)若為迴圈小數,則輸出前幾位並用空格括起來

(3)若無法除盡,則保留小數並用空格括起來

例如:輸入:8/5 輸出:1.6(而不是1.6000...)

輸入:1/3 輸出:.(3)(而不是0.333...)

輸入:11/13 輸出:.(846153)

1.輸入一個由英文字母和空格組成的句子,可能會出現一個或多個空格,不區分大小寫
(1)輸出該句子中字母的個數(10分)
(2)輸出該句子中單詞的個數(10分)
(3)輸出該句子中出現次數最多的字母和次數(20分)

例如:輸入:This Is my love
輸出:

字母個數:12,

單詞個數:4,

出現次數最多的字母:i s,

出現次數:2