問題:給定的十進制數轉換爲二進制和計數連續的1,並顯示它轉換給定的十進制數的二進制和計數連續的1,並顯示它
樣本案例1: 5的二進制表示是101,所以連續的1的最大數量爲1。
樣品情況2: 要求13所述的二進制表示爲1101,所以連續的1的最大數量是2。
解決方案:
#!/bin/python3
import sys
n = int(input().strip())
result = []
counter = 1
def get_binary(num):
if num == 1:
result.append(num)
adj(result)
else:
result.append(num%2)
get_binary(int(num/2))
def adj(arr):
global counter
for x in range(0,len(arr)-1):
if arr[x] == 1 and (arr[x] == arr[x+1]):
counter += 1
print(counter)
get_binary(n)
它沒有通過所有的樣本測試用例。我究竟做錯了什麼?
下面
試着用115.你會得到5,你需要3.你計算_all_數組1,而你必須保留最長的一個。 –
什麼情況下沒有通過?它在這些情況下做了什麼?請按照發布指南的要求顯示這些信息。 – Prune
這也不應該與您的測試案例,但你的二進制倒退 – depperm