#9 Codewars - Ones and Zeros (7 kyu)

閱讀時間約 2 分鐘

題目

原始題目

給定一個由 1 和 0 組成的數組,將等效的二進位值轉換為整數。
例如:[0, 0, 0, 1] 被視為 0001,即 1 的二進位表示法。

例子:

Testing: [0, 0, 0, 1] ==> 1 Testing: [0, 0, 1, 0] ==> 2 Testing: [0, 1, 0, 1] ==> 5 Testing: [1, 0, 0, 1] ==> 9 Testing: [0, 0, 1, 0] ==> 2 Testing: [0, 1, 1, 0] ==> 6 Testing: [1, 1, 1, 1] ==> 15 Testing: [1, 0, 1, 1] ==> 11

然而,數組可以有不同的長度,而不僅限於 4。

拆解流程

依據題意可整理出以下重點:

  • 目標:計算陣列的總和
  • 規則:以二進位制計算
  • 方法
  1. 建立一個變數存放累加後的結果
  2. 透過迴圈進行累加
  3. 加入判斷:只有在傳入 1 時才會累加,因為指數 2**0 會得到 1 ,會導致預料外的結果

程式撰寫

const binaryArrayToNumber = (arr) => {
let newArr = arr.reverse();
let count = 0;
for (let i = 0; i < arr.length; i++) {
if (arr[i] === 1) {
count += 2 ** i;
}
}
return count;
};

改善寫法

使用 parseInt( ) 方法,寫法超精簡!

const binaryArrayToNumber = (arr) => {
return parseInt(arr.join(""), 2);
};

以下來介紹 parseInt( ) 語法:

  • 基本語法
parseInt(string, radix);
  • 可用來將字串轉為數字型別
  • 可傳入兩個參數:第一個參數須傳入字串,會轉型為 Number 型別;第二個參數是指定使用的進位制,值可寫入 2~36
  • 會出現 NaN 的情況:當傳入的字串無法被轉換為數字型別,或是該數字不符合進位制的規則,例如二進位制,卻傳入了 456

今天就介紹到這裡,如果大家有其他寫法歡迎一起來討論~

參考資料

7會員
30內容數
正在一點一滴學習程式,相信知識量總有一天會匯聚成大海,目前專門研究前端中。
留言0
查看全部
發表第一個留言支持創作者!
傑米的沙龍 的其他內容
題目:您可能知道一些相當大的完全平方數。但是下一個呢?完成 findNextSquare 方法,該方法用於找出參數後的下一個整數完全平方數。回想一下,整數的完全平方數是一個整數n,因此sqrt ( n )也是一個整數。如果參數本身不是完全平方數,則返回 -1 。您可以假定該參數
題目:建立一個函數,該函數返回給定最小 4 個正整數的數組的兩個最低正數的總和。不會傳入浮點數或非正整數。例如,當一個數組像 [19, 5, 42, 2, 77], 輸出應該是 7。 [10, 343445353, 3453445, 3453545353453] 應該回來 3453
題目:你的團隊正在開發一個新的高級文本編輯器,你的任務是實現行號功能。請編寫一個函數,該函數接受一個字符串列表作為輸入,並返回每行字符串前面附帶正確的行號。行號從 1 開始計數。格式為 n: 字符串。請注意冒號和空格之間的間隔。
題目:在此 kata 中,您將創建一個包含列表並返回具有相反順序的列表的函數。範例(輸入->輸出) * [1, 2, 3, 4] -> [4, 3, 2, 1] * [9, 2, 0, 7] -> [7, 0, 2, 9]
題目:如果提供的數字在0-9之間,請以文字形式返回。輸入1、輸出 “One”
題目:Scrooge先生有一筆他想投資的錢 “P”。在他這樣做之前,他想知道 “P” 這個總和,必須將其保存在銀行中多少年,以使其達到所需的 “D” 金額。該金額在每年支付利息“I”的銀行中保留 “Y” 年。在當年繳納 “T” 稅後,新款項被重新投資。稅收注意事項:不是對投資本
題目:您可能知道一些相當大的完全平方數。但是下一個呢?完成 findNextSquare 方法,該方法用於找出參數後的下一個整數完全平方數。回想一下,整數的完全平方數是一個整數n,因此sqrt ( n )也是一個整數。如果參數本身不是完全平方數,則返回 -1 。您可以假定該參數
題目:建立一個函數,該函數返回給定最小 4 個正整數的數組的兩個最低正數的總和。不會傳入浮點數或非正整數。例如,當一個數組像 [19, 5, 42, 2, 77], 輸出應該是 7。 [10, 343445353, 3453445, 3453545353453] 應該回來 3453
題目:你的團隊正在開發一個新的高級文本編輯器,你的任務是實現行號功能。請編寫一個函數,該函數接受一個字符串列表作為輸入,並返回每行字符串前面附帶正確的行號。行號從 1 開始計數。格式為 n: 字符串。請注意冒號和空格之間的間隔。
題目:在此 kata 中,您將創建一個包含列表並返回具有相反順序的列表的函數。範例(輸入->輸出) * [1, 2, 3, 4] -> [4, 3, 2, 1] * [9, 2, 0, 7] -> [7, 0, 2, 9]
題目:如果提供的數字在0-9之間,請以文字形式返回。輸入1、輸出 “One”
題目:Scrooge先生有一筆他想投資的錢 “P”。在他這樣做之前,他想知道 “P” 這個總和,必須將其保存在銀行中多少年,以使其達到所需的 “D” 金額。該金額在每年支付利息“I”的銀行中保留 “Y” 年。在當年繳納 “T” 稅後,新款項被重新投資。稅收注意事項:不是對投資本
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
鴻海研發的自動駕駛AI模型得冠軍| AI新創公司 Letta 解決大型語言模型無法長期存儲數據的難題|美國情報官員警告俄羅斯正運用 AI 攻擊美國副總統賀錦麗
大盤熱錢資金目前流往營建 航運 光電 紡織
Thumbnail
金融市場重點整理 1. 日期: 2024/9/23 2. 重點摘要: 美股窄幅震盪,主要指數小幅上漲,市場情緒受到經濟數據和Fed官員談話影響。 美國經濟數據表現不俗,增強市場對於美國經濟軟著陸的信心。 多位Fed官員公開談話,強化市場對於聯準會將連續降息的信心。 伊朗釋出善意,表示願意
Thumbnail
夜盤洗刷刷,高點停在390 又下殺回去270-280 最終收在320 但看了夜盤收盤後資料 發現主力有做空⋯⋯ 小娜早上開個小低、 是不是今天要大殺四方呢⋯⋯ 今天該怎麼辦? 首先每天還是確認三件事 1⃣️確認多空 2⃣️確認撐壓 3⃣️確認波浪 昨天我們也是臨時找到196支撐
Thumbnail
題目:你將會得到一個單詞,你的任務是返回該單詞的中間字符。如果單詞的長度是奇數,則返回中間字符。如果單詞的長度是偶數,則返回中間的兩個字符。
Thumbnail
│9月7日 │『一日一花』-胡枝子 │花語:柔軟的心 │山萩 │『一日一色』-青鈍 │偏藍的深灰色
Thumbnail
不知道大家在上個月“戊申月”過得如何,有感受到“天剋地衝”嗎?這個月是“己酉”氣場接手,看似“衝擊波”好像要過了,但,真的是這樣嗎? 以前常常聽到“多事之秋”,小時候不懂事,不知道這是什麼意思,學習八字之後,才知道隔年的氣場,其實在中秋節之後就會開始慢慢跑進來,所以在一個時空當中,會同時存在三個氣場
Thumbnail
今日與昨日分析相同, 台積電聯電雙跌, 台積電下跌8元(-1.27%), 外資賣超734張。 聯電下跌1.7元(-2.43%) 外資賣超18798張, 而外資在昨日9/6已賣超聯電65258張, 合計2日賣超84056張, 與1月的走法相似。 如果要為大盤今天的下跌找理由, DELTA疫情可能是最好
Thumbnail
嗨大家~今天還好嗎~我發現我好久沒用這個開頭了😂那我們廢話不多說,趕快來看今天的大盤分析文吧~ 9/7回顧 今天開盤17534,收盤17428,下跌66點。今天的盤勢比較弱,許多個股都下跌,台積電、聯電也下跌,不過航運異軍突起呈現大漲局面,但仍難以挽救疲軟的股市。
Thumbnail
今天開會的時候,我維持著長久的習慣,一邊討論,一邊畫圖。其實我也納悶,這樣是不是會不專心?但我發現,正因為畫圖的時候,不是專注在畫圖的過程上,所以畫出來的圖才具有輕鬆寫意的感覺。
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
鴻海研發的自動駕駛AI模型得冠軍| AI新創公司 Letta 解決大型語言模型無法長期存儲數據的難題|美國情報官員警告俄羅斯正運用 AI 攻擊美國副總統賀錦麗
大盤熱錢資金目前流往營建 航運 光電 紡織
Thumbnail
金融市場重點整理 1. 日期: 2024/9/23 2. 重點摘要: 美股窄幅震盪,主要指數小幅上漲,市場情緒受到經濟數據和Fed官員談話影響。 美國經濟數據表現不俗,增強市場對於美國經濟軟著陸的信心。 多位Fed官員公開談話,強化市場對於聯準會將連續降息的信心。 伊朗釋出善意,表示願意
Thumbnail
夜盤洗刷刷,高點停在390 又下殺回去270-280 最終收在320 但看了夜盤收盤後資料 發現主力有做空⋯⋯ 小娜早上開個小低、 是不是今天要大殺四方呢⋯⋯ 今天該怎麼辦? 首先每天還是確認三件事 1⃣️確認多空 2⃣️確認撐壓 3⃣️確認波浪 昨天我們也是臨時找到196支撐
Thumbnail
題目:你將會得到一個單詞,你的任務是返回該單詞的中間字符。如果單詞的長度是奇數,則返回中間字符。如果單詞的長度是偶數,則返回中間的兩個字符。
Thumbnail
│9月7日 │『一日一花』-胡枝子 │花語:柔軟的心 │山萩 │『一日一色』-青鈍 │偏藍的深灰色
Thumbnail
不知道大家在上個月“戊申月”過得如何,有感受到“天剋地衝”嗎?這個月是“己酉”氣場接手,看似“衝擊波”好像要過了,但,真的是這樣嗎? 以前常常聽到“多事之秋”,小時候不懂事,不知道這是什麼意思,學習八字之後,才知道隔年的氣場,其實在中秋節之後就會開始慢慢跑進來,所以在一個時空當中,會同時存在三個氣場
Thumbnail
今日與昨日分析相同, 台積電聯電雙跌, 台積電下跌8元(-1.27%), 外資賣超734張。 聯電下跌1.7元(-2.43%) 外資賣超18798張, 而外資在昨日9/6已賣超聯電65258張, 合計2日賣超84056張, 與1月的走法相似。 如果要為大盤今天的下跌找理由, DELTA疫情可能是最好
Thumbnail
嗨大家~今天還好嗎~我發現我好久沒用這個開頭了😂那我們廢話不多說,趕快來看今天的大盤分析文吧~ 9/7回顧 今天開盤17534,收盤17428,下跌66點。今天的盤勢比較弱,許多個股都下跌,台積電、聯電也下跌,不過航運異軍突起呈現大漲局面,但仍難以挽救疲軟的股市。
Thumbnail
今天開會的時候,我維持著長久的習慣,一邊討論,一邊畫圖。其實我也納悶,這樣是不是會不專心?但我發現,正因為畫圖的時候,不是專注在畫圖的過程上,所以畫出來的圖才具有輕鬆寫意的感覺。