如何知道一个二进制数能否被 9 整除?

发布于 2022-08-25 01:16:06 字数 19 浏览 22 评论 0

不做进制转换,如何知道?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

云仙小弟 2022-09-01 01:16:06

用自动机做除3
包含三个状态
s0 为 余0 集合
s1 为 余1 集合
s2 为 余2 集合
从s1 开始
转移规则

     s0 1 -> s1; 0 -> s0
     s1 1 -> s0; 0 -> s2
     s2 1 -> s2; 0 -> s1

记录商
每次超过3则记为1 即转移过程时

 s1 -> 1 , s2 -> 1 ,s2 -> 0

最后商排列一下就是
然后把商重新进行一次计算 如果最后状态为s0 则被9整除

拿楼上举例
100010101 从做到右扫描 状态经历

   0     0(1)     0      1(1)     0(1)     1(1)     0     1
s1 -> s2  ->   s1 ->  s2  ->   s2  ->   s1  -> s0   -> s0 -> s1 

商为 1011100
因为在s1 所以不能被3整除 自然不能给9整除

修改一下为 0
100010100 则最后为 s0 -> s0 能整除 结果为1011100
再进行一次计算

   0     1     1     1     0     0
s1 -> s2 -> s2 -> s2 -> s2 -> s1 -> s2  

在状态s2 所以该数无法被9整除

转移状态你可以自己想一下为何是这样 程序你也可以自己想一下如何写 - -

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文