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,則稱...