Skip to content

20449: 是否被5整除

http://cs101.openjudge.cn/dsapre/20449/

给定由0 和 1 组成的字串 A,我们定义 N_i:从 A[0] 到 A[i] 的第 i 个子数组被解释为一个二进制数

返回0和 1 组成的字串 answer,只有当 N_i 可以被 5 整除时,答案 answer[i] 为 1,否则为 0

具体请看例子

输入

一个0和1组成的字串

输出

一行长度等同于输入的0和1组成的字串

样例输入

011

样例输出

100

提示

0可以被5整除->1 01不可以被5整除->0 011不可以被5整除->0 结果是100

遍历输入的字符串,然后将每个字符解释为二进制数并检查是否可以被5整除来解决。我们可以使用Python的内置函数int()将二进制字符串转换为整数,并使用模运算符%来检查是否可以被5整除。

python
def binary_divisible_by_five(binary_string):
    result = ''
    num = 0
    for bit in binary_string:
        num = (num * 2 + int(bit)) % 5
        if num == 0:
            result += '1'
        else:
            result += '0'
    return result

binary_string = input().strip()
print(binary_divisible_by_five(binary_string))