吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1627|回复: 2
收起左侧

[其他转载] [BrainFuck] 如何使用BrainF**k实现可以取余数的除法?

[复制链接]
VioletTec 发表于 2021-4-4 15:31
本帖最后由 VioletTec 于 2021-4-5 08:34 编辑
本文原创首发博客地址: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比较大小

>[[-]>>+<<]>>>+<[->-<]>[[-]<<<+>>>]
<<<[[-]>[-<<<<+>>>>]<<<<<<[-]>>>>>]>[-]<<<<<<]

截图

!([img]https://pic.rmb.bdstatic.com/bjh/22b119a4927997b2a91fbeec9cc316c4.png)

计算5÷2的结果——商2余1

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

头像被屏蔽
First丶云心 发表于 2021-4-4 15:52
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 17:34

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表