Re: [問題] 從二進位判斷數字是否被5整除
看板Prob_Solve (計算數學 Problem Solving)作者utility (喲)時間16年前 (2008/10/04 13:28)推噓0(0推 0噓 1→)留言1則, 1人參與討論串3/6 (看更多)
※ 引述《neverfly (neverfly)》之銘言:
: 我想要建一個automata,可以輸入二進位的值,
: 如果該值能被5整除就接受。
: 但是我想了很久,實在想不出來二進位下,能被5整除的數有什麼特性。
: 列了前幾個出來
: 101 1010 1111 10100 11001 11110 100011 101000
: 101101 110010 110111 111100 1000001 1000110 1001011 1010000
: 1010101 1011010 1011111 1100100 ……
: 只發現了有每八個,末三碼會重覆這個特性,
: 不過似乎還是不能直接檢查出來一串二進位的值是否被5整除。
: 請問有人能解決這個問題嗎?
1.把數字右移兩位 - 原數字後面兩位....
(如果這個結果是5的倍數..則代表原數字是五的倍數.)
2.當然你為了要檢查(1)的結果是不是5的倍數...還要再回(1)再做一次檢查
(直到後面的兩位數字大於被右兩位的數字值)..
例如:10100 => 101-00=101=>1-01=0=>5的倍數
1011111=>10111-11=10100=>101-00=101=>1-01=0=>5的倍數
弄一個不是的來看看好了
1000111=>10001-11=1110=>11-10=1=>0-1 < 0 =>所以不是5的倍數
ps:剛才臨時想到的....大家看看有沒有問題..
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.160.105.209
→
10/04 13:47, , 1F
10/04 13:47, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 6 篇):
Prob_Solve 近期熱門文章
PTT數位生活區 即時熱門文章