题目:
给定由若干 0
和 1
组成的数组 A
。我们定义 N_i
:从 A[0]
到 A[i]
的第 i
个子数组被解释为一个二进制数(从最高有效位到最低有效位)。
返回布尔值列表 answer
,只有当 N_i
可以被 5
整除时,答案 answer[i]
为 true
,否则为 false
。
示例 1:
输入:[0,1,1]
输出:[true,false,false]
解释:
输入数字为 0, 01, 011;也就是十进制中的 0, 1, 3 。只有第一个数可以被 5 整除,因此 answer[0] 为真。
示例 2:
输入:[1,1,1]
输出:[false,false,false]
示例 3:
输入:[0,1,1,1,1,1]
输出:[true,false,false,false,true,false]
示例 4:
输入:[1,1,1,0,1]
输出:[false,false,false,false,false]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/binary-prefix-divisible-by-5
class Solution(object):
def prefixesDivBy5(self, nums):
b=[]
num=0
for i in range(len(nums)):
num<<=1
num+=nums[i]
b.append(num%5==0)
return b。
题解:
判断最后十位数是否能被5整除
十位数的获得:
①将列表前一段获得的数中十位数部分左移1位(即乘以二)
②加上该数(为获得新的十位数部分)
③判断是否能够被5整除