gpt4 book ai didi

c++ - 检查二进制数是否能被 13 整除

转载 作者:行者123 更新时间:2023-11-28 00:40:40 30 4
gpt4 key购买 nike

如果用户输入从最高位到最低位的数字,如何检查二进制数是否可以整除 13?

位数可能非常大,因此将其转换为十进制然后检查其可整除性是没有意义的。

我已经以常规方式处理了它。位数最多为 10^5,因此在将其转换为十进制时会产生溢出。

如何解决这个问题?示例:

110010000100100它是除以 13

111111111111111它不能被 13 整除

最佳答案

这是一个 O(N) 算法:

从左到右遍历位。每增加一个位置相当于将当前值乘以 2,然后加上 0 或 1。这在模 13 算术中也是如此。当你到达最后一位时,看看最终值是否等于 0。如果是,那么原始数字可以被 13 整除。

关于c++ - 检查二进制数是否能被 13 整除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19069571/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com