#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
本專欄將提供給您最新的市場資訊、產業研究、交易心法、精選公司介紹,以上內容並非個股分析,還請各位依據自身狀況作出交易決策。歡迎訂閱支持我,獲得相關內容,也祝您的投資之路順遂! 每年 $990 訂閱方案👉 https://reurl.cc/VNYVxZ 每月 $99 訂閱方案👉https://re
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
本專欄將提供給您最新的市場資訊、產業研究、交易心法、精選公司介紹,以上內容並非個股分析,還請各位依據自身狀況作出交易決策。歡迎訂閱支持我,獲得相關內容,也祝您的投資之路順遂! 每年 $990 訂閱方案👉 https://reurl.cc/VNYVxZ 每月 $99 訂閱方案👉https://re
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
今天開會的時候,我維持著長久的習慣,一邊討論,一邊畫圖。其實我也納悶,這樣是不是會不專心?但我發現,正因為畫圖的時候,不是專注在畫圖的過程上,所以畫出來的圖才具有輕鬆寫意的感覺。