VioletTec
V2EX  ›  问与答

求教:使用 BrainF**k 实现加减乘除还有没有更好的实现思路

  •  1
     
  •   VioletTec · Sep 19, 2020 · 1580 views
    This topic created in 2070 days ago, the information mentioned may be changed or developed.

    最近接触到 BrainFuck

    在学校闲着无聊打发时间把加减乘除的运算方法都手写了一遍。

    发现实现减法、乘法和除法特别冗长复杂。

    (一部分原因也是我太懒不想优化指针的移动次数以及格数(狗头)

    乘法和除法还有减法都是暴力穷举方法运算,从 1 开始猜,猜到对为止,所以遇到大数字会很复杂。

    各位 v2er 们有没有更好的解决思路,请求指点。

    仓库地址:https://github.com/KeKe12030/BrainFuckMath

    4 replies    2021-04-19 21:40:56 +08:00
    geelaw
        1
    geelaw  
       Sep 19, 2020 via iPhone
    为什么你的减法和加法区别那么大……

    减法显然是 ,>,[-<->],两个数反复同时减 1

    乘法只要反复做加法即可
    >,>,< 读入因数到 2 3
    [-
    >[->+<<<+>>] 移动 3 到 4 并累加到 1
    >[-<+>]<< 移动 4 到 3
    ]
    >[-] 清空 3

    带余除法可以反复做减法实现,不过要麻烦一些
    geelaw
        2
    geelaw  
       Sep 19, 2020 via iPhone
    看了一下原来你的乘法和我的思路一样 - -
    VioletTec
        3
    VioletTec  
    OP
       Sep 19, 2020
    @geelaw 啊这,我走极端了,还以为减法很复杂,一时间脑子没转过来(哭)
    感谢提供的除法可以取余的算法的思路,回来去玩一玩。
    VioletTec
        4
    VioletTec  
    OP
       Apr 19, 2021
    @geelaw 感谢大佬近一年前的回复。取余除法的坑已经于近日填上了。😂

    https://blog.mcplugin.cn/p/777
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   973 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 22:17 · PVG 06:17 · LAX 15:17 · JFK 18:17
    ♥ Do have faith in what you're doing.