1. 程式人生 > >入坑codewars第二天-Basic Mathematical Operations、Ones and Zeros

入坑codewars第二天-Basic Mathematical Operations、Ones and Zeros

 

一、題目

需要實現 +對應加法

需要實現 -對應減法

……

以此類推

二、求解

簡單的if語句

二、題二

題意就是:將列表中的數字看成一串二進位制然後轉成十進位制數

我的思路是:先把列表顛倒,這裡注意列表a,a.reverse()就直接把a顛倒了;因為二進位制是從右到左讀,因此我先顛倒從左往右方便計算。

(1)先顛倒列表:

(2)迴圈用列表數字乘以2^n

(3)依次相加

程式碼如下:

def binary_array_to_number(arr):
    arr.reverse()
    sum1=0
    i=0
    for x in arr:
        sum1=sum1+(2**i)*x
        i=i+1
    return sum1