演算法構造——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