本問原創首發博客鏈接:https://blog.mcplugin.cn/p/777
上次實作了一個不帶余數的整除運算(https://blog.mcplugin.cn/p/609),這次來個帶余數的除法運算,
已知BUG:被除數不得與除數相等(如:1/1 ; 2/2 ; 3/3等);
整數除法最后的商會比正確的商小1,但余數會等于被除數
(如:8/4 == 1······4);
思路
這次和上次一樣,仍無具體的電子版草稿,只有紙質草稿,
大體思路為:使用乘法猜商,每猜一次,猜的商都與被除數做差,得到余數,再將余數與除數比較大小,若于數大于除數,則繼續猜商;若余數小于除數,則輸出,
用法
起始指標、引數、回傳值、最終指標與運算損耗:
- 起始指標:
- i0
- 引數:
- i0:存放被除數
- i1:存放除數
- 回傳值:
- i2:存放i0與i1相除后的商
- i3:存放i0與i1相除后的余數
- 運算損耗位:
- i0、i1、i2、i3、i4、i5、i6、i7、i8、i9、i10、i11、i12
- 最終指標:
- i1
代碼
,>,[[->>>+>+<<<<]>>>>[-<<<<+>>>>]<<<+
[->+>>+<<<]>>>[-<<<+>>>]<<[->>>+<<<]>
[->>[->+<<+>]>[-<+>]<<<]>>[-]<<<<<<
[->>>>>>+>+<<<<<<<]>>>>>>>[-<<<<<<<+>>>>>>>]
<<[->-<]>[->+>+<<]>>[-<<+>>]<<<<<<<[->>>+>+<<<<]
>>>[-<<<+>>>]>
# ↓對i5 i6比較大小
[->-<[->>>+>>+<<<<<]>[->>>+>>+<<<<<]>>>>
[-<<<<<+>>>>>]>[-<<<<<+>>>>>]<<<>[->+<]<
[[-]>+<]>>[[-]>+<]><<[-<+>]>>[-<<+>>]<<<
[[->[->[-]+<]<]]>[-]>>+<[->-<]>[[-]<<<<<<
[-]>>>>>>]<<<<<<]
# ↑對i5 i6比較大小
>[[-]>>+<<]>>>+<[->-<]>[[-]<<<+>>>]
<<<[[-]>[-<<<<+>>>>]<<<<<<[-]>>>>>]>[-]<<<<<<]
截圖

計算5÷2的結果——商2余1
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/282569.html
標籤:其他
下一篇:深入理解微信二維碼掃碼登錄的原理
