演算法小練習

2021-10-04 01:35:57 字數 2847 閱讀 3022

1、輸入乙個int型的正整數,計算出該int型資料在記憶體中儲存時1的個數。

解題思路:將正整數轉換為二進位制字串,再遍歷字串統計其中1的個數

總結:js裡的tostring(radix),tostring()方法可把乙個 number 物件轉換為乙個字串,並返回數字的字串。若省略該引數,則使用基數 10。

parseint(string, radix)
其中,string為必需。要被解析的字串。radix為可選。表示要解析的數字的基數。該值介於 2 ~ 36 之間。如果省略該引數或其值為 0,則數字將以 10 為基礎來解析。如果它以 「0x」 或 「0x」 開頭,將以 16 為基數。如果該引數小於 2 或者大於 36,則parseint() 將返回 nan。

parseint(num,8);   //八進位制轉十進位制

parseint(num,16); //十六進製制轉十進位制

parseint(num).tostring(8) //十進位制轉八進位制

parseint(num).tostring(16) //十進位制轉十六進製制

parseint(num,2).tostring(8) //二進位制轉八進位制

parseint(num,2).tostring(16) //二進位制轉十六進製制

parseint(num,8).tostring(2) //八進位制轉二進位制

parseint(num,8).tostring(16) //八進位制轉十六進製制

parseint(num,16).tostring(2) //十六進製制轉二進位制

parseint(num,16).tostring(8) //十六進製制轉八進位制

var s=readline()

var s1=parseint(s).tostring(2)

var count=0

for(var i=0;i給定n個字串,請對n個字串按照字典序排列。

var n=readline()

var a=

while(n--)

a.sort()

for(let index in a)

將乙個英文語句以單詞為單位逆序排放。例如「i am a boy」,逆序排放後為「boy a am i」

所有單詞之間用乙個空格隔開,語句中除了英文本母外,不再包含其他字元

解題思路:先將字串分割放到乙個陣列,再反向遍歷陣列取出

var s=readline()

var a=s.split(" ")

var s1=''

for(var i=a.length-1;i>=0;i--)

print (s1)

寫出乙個程式,接受乙個字串,然後輸出該字串反轉後的字串。(字串長度不超過1000)

var s=readline()

var a=''

for(var i=s.length-1;i>=0;i--)

print(a)

編寫乙個函式,計算字串中含有的不同字元的個數。字元在acsii碼範圍內(0~127),換行表示結束符,不算在字元裡。不在範圍內的不作統計。

解題思路:定義個obj用於存放字元的情況,其中,key是字元的值,value是可以是字元的個數(如果要統計每個字元的個數的話),也可以是true(表示這個字元存在)。遍歷每乙個字元,判斷當前obj裡是否存在這個屬性,如果不存在,則把這個字元以屬性的方式新增到obj,同時記錄不同字元的變數要加一。

var s=readline()

var obj={}

var n=s.length

var count=0

for(var i=0;i輸入乙個int型整數,按照從右向左的閱讀順序,返回乙個不含重複數字的新的整數。

總結:在做這類看數字重複的題,我都是用乙個物件通過key(陣列的值)和value(有或統計出現的次數)。其中obj[s[i]]**不會報錯,而obj.s[i]**編譯報錯。原因是:1、中括號法可以用變數作為屬性名,而點方法不可以;2、中括號法可以用數字作為屬性名,而點語法不可以;3、中括號法可以使用js的關鍵字和保留字作為屬性名,而點語法不可以(盡量避免在變數或者屬性中使用關鍵字或保留字);

var s =readline()

var n=s.length

var obj={}

var a=''

for(var i=n-1;i>=0;i--)

}print(a)

資料表記錄包含表索引和數值(int範圍的整數),請對錶索引相同的記錄進行合併,即將相同索引的數值進行求和運算,輸出按照key值公升序進行輸出

解題思路:對每次輸入的字串進行分割,index 0是它的索引,index  1是它的值。遍歷字串,判斷索引是否已經在obj裡了,如果是則要將obj裡該索引對應的值更新,如果不在obj裡,則將該索引加到obj裡,對應的值是它的值。

總結:obj 的value是乙個字串,需轉換為整型後做運算

var n=readline()

var a=

var obj={}

while(n--)else

}for(var key in obj)

演算法小練習

連續輸入字串,請按長度為8拆分每個字串後輸出到新的字串陣列 長度不是8整數倍的字串請在後面補數字0,空字串不處理。解題思路 迴圈從鍵盤輸入,對於每個字串首先判斷長度是否大於8,如果是大於8的,計算是8的幾倍,以8個切片放到乙個陣列。再看下是否有餘數,因為餘數要用0補齊8位,放到陣列。如果字串的長度小...

演算法小練習

寫出乙個程式,接受乙個十六進製制的數,輸出該數值的十進位制表示。多組同時輸入 解題思路 十六進製制數都是0x開頭的,轉換為十進位制為sum a 16 n 公式不好寫,意思是各個位上的數字,乘以16的指數,指數根據每位的位置不同,如最後一位就是,0次方 這樣,可以先去掉ox得到後面r的字串,十六進製制...

迴圈結構演算法小練習

輸入乙個10的9次方的正整數,輸出它的位數。例如輸入123,的位數為3。include include using namespace std intmain cout 輸出位數 getch return0 水仙花數 輸出100 999中所有水仙花數。若3位數abc滿足abc a3 b3 c3,則稱...