终于AC了:用BrainFuck语言过SPOJ测试题

    SPOJ的多语言确实很牛,竟然连WhiteSpace语言也支持(很早就听说过这种语言,它的代码仅仅包含空格、Tab和回车三个字符,其余字符一律不认)。今天,我在提交语言的列表里看到了另一个叫brainf**k的语言,顿时来了兴趣。
    brainf**k=BrainFuck。如果哪天我发明一种语言叫“太他妈的牛逼了”,矜持一点的OJ也会称呼它“太XXX牛B语言”。这种语言符合图灵机模型,语法暴简单,通篇8种字符,一看就会:

>  指针加一
<  指针减一
+  指针指向的字节的值加一
–  指针指向的字节的值减一
.  输出指针指向的单元内容(ASCII码)
,  输入内容到指针指向的单元(ASCII码)
[  如果指针指向的单元值为零,向前跳转到对应的]指令的次一指令处
]  如果指针指向的单元值不为零,向回跳转到对应的[指令的次一指令处

比如,下面这段代码可以在屏幕上打印出“Hello World!”:
++++++++++[>+++++++>++++++++++>+++>+<<<<-]
>++.>+.+++++++..+++.>++.<<+++++++++++++++.
>.+++.------.--------.>+.>.

    后来,我看了看SPOJ的第一题,读一串数,读什么你就输出什么,直到你读到一个数字42位置。这个题目出得比A+B Prob要好,因为几乎所有的语言都可以AC。我决定用BrainFuck把这道题过了。我仔细想了一下,主要是在想如何用这个语言来表示and运算。后来调试了一会儿,发现了几个错误,最终成功AC了。给大家看一下我的AC代码:
>>,>,
< <<++++++[>>--------<<-]>>---- [>>+>]<[<]> <<++++++[>>++++++++<<-]>>++++
> <<++++++[>>--------<<-]>>-- [>+>]<[<]>> <<++++++[>>++++++++<<-]>>++ >
[<<. [-]>[-<+>],>[-]<<
<<++++++[>>--------<<-]>>---- [>>+>]<[<]> <<++++++[>>++++++++<<-]>>++++
><<++++++[>>--------<<-]>>-- [>+>]<[<]>> <<++++++[>>++++++++<<-]>>++ >]

    后来我看到了SPOJ论坛上的一个标程,虽然标程比我的代码长得多,但也漂亮的多。
+[>>----------
[++++++++++<,----------]
>--------------------------------------------------
>----------------------------------------------------
>

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

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

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

]

    任何一个领域里总是有牛人出现。我在网上看到,居然还有BrainFuck编程比赛。比如,有一次比赛题目叫大家用BrainFuck语言编写3x+1问题。输入一串数,你需要编程求出这些数按照3x+1变换规则进入循环各自需要多少步。标程短得惊人:
>,[
    [
        ----------[
            >>>[>>>>]+[[-]+<[->>>>++>>>>+[>>>>]++[->+<<<<<]]<<<]
            ++++++[>------<-]>--[>>[->>>>]+>+[<<<<]>-],<
        ]>
    ]>>>++>+>>[
        <<[>>>>[-]+++++++++<[>-<-]+++++++++>[-[<->-]+[<<<<]]<[>+<-]>]
        >[>[>>>>]+[[-]<[+[->>>>]>+<]>[<+>[<<<<]]+<<<<]>>>[->>>>]+>+[<<<<]]
        >[[>+>>[<<<<+>>>>-]>]<<<<[-]>[-<<<<]]>>>>>>>
    ]>>+[[-]++++++>>>>]<<<<[[<++++++++>-]<.[-]<[-]<[-]<]<,
]

    这种语言语法之简单,还产生出很多有意思的东西。比如,你可以想到用c语言或者pascal语言完全可以编写一个不到50行的BrainFuck编译器。还有,我们也可以用BrainFuck语言来写一个BrainFuck的编译器。事实上,有人真的也写出来了,我也看到代码了。太牛B了。

做人要厚道
转贴请注明出处

46 条评论

  • dd

    无聊。

    回复:和您的软件工程学比起来是不是更无聊?  :)
    下次写WhiteSpace来和你的“OI中的软件工程学之二”比

  • dd

    哈哈。那就比……比谁更无聊。

  • w4ppsxy

    两位刷新了我对无聊的新定义。。。:L

    回复:我是真的很无聊

  • 小西牛

    IF 语句怎么弄啊?

    回复:把条件先变为某位置不为0的形式,执行语句放在[]里,语句执行后记得要把那个位置清零。

  • 小西牛

    >+++[-<++++++++++>]<++………………..>++++++[-<++++++++++>]<+++.>++[-<———->]<—.>++++[-<———->]<…………………….>+[-<———->]<———.—.>++[-<++++++++++>]<++…………..>++++++[-<++++++++++>]<+++.>++[-<———->]<—.>++++[-<———->]<…..>++++[-<++++++++++>]<..>+++[-<———->]<—–.—–……………………>+[-<———->]<———.—.>++[-<++++++++++>]<++………….>++++++[-<++++++++++>]<+++.>++[-<———->]<—.>++[-<———->]<——-.>++[-<++++++++++>]<+++++++.>+++[-<———->]<—–.—–..+++++.>++[-<++++++++++>]<++.>++[-<———->]<——-..+++.—…………………..>+[-<———->]<———.—.>++[-<++++++++++>]<++………….>++++++[-<++++++++++>]<+++.>++[-<———->]<—.>++[-<———->]<——-.>+[-<———->]<—.>+[-<++++++++++>]<+++.>++[-<++++++++++>]<+++++++.>+[-<———->]<–

    第一页

  • 小西牛

    -.>+[-<———->]<—-.>+[-<———->]<.—..>++++[-<++++++++++>]<.>++[-<———->]<——-.>+[-<———->]<—………………….>+[-<———->]<———.—.>++[-<++++++++++>]<++………….>++++++[-<++++++++++>]<+++.>++[-<———->]<—.>++++[-<———->]<..+++++.>+++[-<++++++++++>]<+++++.>++++[-<———->]<.>++++[-<++++++++++>]<.>+[-<———->]<—.>++[-<———->]<——-.+++++.>++[-<++++++++++>]<++.>++[-<———->]<——-………………….>+[-<———->]<———.—.>++[-<++++++++++>]<++…………..>++++++[-<++++++++++>]<+++.——-.+++++++..>+[-<++++++++++>]<.>+[-<++++++++++>]<+++++…>++++[-<———->]<——–.>++++[-<++++++++++>]<++++++++..>+[-<———->]<—–.>+[-<++++++++++>]<+++++.>+[-<———->]<—–..>+++[-<———->]<—..>++++[-<++++++++++>]<++++++++.>++++[-<———->]<——–.>+[-<———->]<—.>++[-<———-

    第二页

  • 小西牛

    >]<——-………….>+[-<———->]<———.—.>++[-<++++++++++>]<++……………>++++++[-<++++++++++>]<+++.>++[-<———->]<—.>+[-<———->]<—.>++[-<———->]<——-…………….+++++.–.—………..>+[-<———->]<———.—.>++[-<++++++++++>]<++……………>++++++[-<++++++++++>]<+++.>++[-<———->]<—.>++++[-<———->]<………………>+[-<++++++++++>]<+++.>+[-<———->]<.>++[-<++++++++++>]<++++.>++[-<———->]<——-………>+[-<———->]<———.—.>++[-<++++++++++>]<++………….>++++++[-<++++++++++>]<+++.>++[-<———->]<—.>++++[-<———->]<..+++.—……………….>++[-<++++++++++>]<+++++++.>+[-<++++++++++>]<+++.>++[-<———->]<——-.>+[-<———->]<—…….>+[-<———->]<———.—.>++[-<++++++++++>]<++…………>++++++[-<++++++++++>]<+++.>++[-<———->]<—.>++++[-<———->]

    第三页

  • 小西牛

    <..+++++..—–…………………>++++[-<++++++++++>]<.>++[-<———->]<——-.>+[-<———->]<—……>+[-<———->]<———.—.>++[-<++++++++++>]<++…………>++++++[-<++++++++++>]<+++.>++[-<———->]<—.>++++[-<———->]<..>++++[-<++++++++++>]<.>+[-<———->]<—.>+[-<———->]<—-.>+[-<———->]<—…>++[-<++++++++++>]<+++++++++……..>++[-<———->]<———….>++[-<++++++++++>]<+++++++++…>++[-<———->]<———..>++[-<++++++++++>]<+++++++.>+[-<++++++++++>]<+++.>++++[-<———->]<……>+[-<———->]<———.—.>++[-<++++++++++>]<++…………>++++++[-<++++++++++>]<+++.>++[-<———->]<—.>++++[-<———->]<.>+[-<++++++++++>]<+++.>+[-<———->]<.—.+++.—…………………+++.—……>+[-<———->]<———.—.>++[-<++++++++++>]<++…………>++++++[-<++++++++++>]<+++.>++[-<———->]<—.>++++[-<——-

    第四页

  • 小西牛

    —>]<..+++++..>++[-<++++++++++>]<++.>++[-<———->]<——-…………………+++.—……>+[-<———->]<———.—.>++[-<++++++++++>]<++…………>++++++[-<++++++++++>]<+++.>++[-<———->]<—.>++++[-<———->]<…………………….>+[-<++++++++++>]<+++.>++[-<++++++++++>]<+++++++.>++++[-<———->]<……>+[-<———->]<———.—.>++[-<++++++++++>]<++…………>++++++[-<++++++++++>]<+++.>++[-<———->]<—.>+[-<———->]<—.>++[-<———->]<——-……………………+++++.>++[-<++++++++++>]<++.>++[-<———->]<——-……>+[-<———->]<———.—.>++[-<++++++++++>]<++………..>++++++[-<++++++++++>]<+++.>++[-<———->]<—.>+[-<———->]<—..>+[-<++++++++++>]<+++.>++++[-<———->]<………………….>++++[-<++++++++++>]<..>++++[-<———->]<…….>+[-<———->]<———.—.>++[-<++++++++++>]

    第五页

  • 小西牛

    <++………>++++++[-<++++++++++>]<+++.>++[-<———->]<—.>++++[-<———->]<….>+[-<++++++++++>]<+++.>++[-<++++++++++>]<+++++++..>+[-<———->]<—.>++[-<———->]<——-…………….>+[-<++++++++++>]<+++.>++[-<++++++++++>]<+++++++.>+++[-<———->]<——-.>+[-<++++++++++>]<.>+[-<———->]<—……..>+[-<———->]<———.—.>++[-<++++++++++>]<++……..>++++++[-<++++++++++>]<+++.>++[-<———->]<—.>+[-<———->]<—.>++[-<———->]<——-……>++[-<++++++++++>]<+++++++.>++[-<———->]<—-.>+++[-<++++++++++>]<+++++++.>+[-<———->]<—.>+[-<———->]<—-.>+[-<———->]<—……….>+[-<++++++++++>]<+++.——–.>+++[-<++++++++++>]<+++++..>+++[-<———->]<—–.—–……….>+[-<———->]<———.—.>++[-<++++++++++>]<++…….>++++++[-<++++++++++>]<+++.>++[-<———->]<—.>++++[-<———->]<..>++++[-<++++++++++>]<.>++[-<-

    第六页

  • 小西牛

    ———>]<——-..>++[-<++++++++++>]<+++++++.>++++[-<———->]<……..>+[-<++++++++++>]<+++..>+[-<++++++++++>]<++++.>+[-<++++++++++>]<+++.>+[-<———->]<—.>+[-<———->]<—-..>+[-<++++++++++>]<++++.>++[-<———->]<——-…………….>+[-<———->]<———.—.>++[-<++++++++++>]<++……>++++++[-<++++++++++>]<+++.>++[-<———->]<—.>++[-<———->]<——-.>+[-<———->]<—..>++++[-<++++++++++>]<.>++[-<———->]<——-.>+[-<———->]<—.+++.—……….>+[-<++++++++++>]<+++.>++[-<++++++++++>]<+++++++.>++++[-<———->]<………………..>+[-<———->]<———.—.>++[-<++++++++++>]<++……>++++++[-<++++++++++>]<+++.>++[-<———->]<—.>++++[-<———->]<…+++++.>++[-<++++++++++>]<++.>++[-<———->]<——-.>++++[-<++++++++++>]<.>++[-<———->]<——-.>+[-<———->]<—…….>+[-<++++++++++>]<+++.——–.++++++++.>++[-

    第七页

  • 小西牛

    <++++++++++>]<+++++++.>++++[-<———->]<………………..>+[-<———->]<———.—.>++[-<++++++++++>]<++…..>++++++[-<++++++++++>]<+++.>++[-<———->]<—.>++++[-<———->]<….>+[-<++++++++++>]<+++.>+[-<———->]<.>+[-<++++++++++>]<.>+[-<———->]<—.+++.>+[-<++++++++++>]<.>+[-<———->]<—…..>+[-<++++++++++>]<+++.>+[-<———->]<.—.+++++.>++[-<++++++++++>]<++.>++[-<———->]<——-………………..>+[-<———->]<———.—.>++[-<++++++++++>]<++…..>++++++[-<++++++++++>]<+++.>++[-<———->]<—.>++++[-<———->]<…..>+[-<++++++++++>]<+++.>+[-<———->]<.>+[-<++++++++++>]<.>+[-<———->]<—.>++++[-<++++++++++>]<.>+[-<———->]<—.>++[-<———->]<——-….+++++.>++[-<++++++++++>]<++.>++[-<———->]<——-.>++[-<++++++++++>]<+++++++.>++[-<———->]<–.—–………………..>+[-<———->]<———.—.>++[-<++++++++++>]

    第八页

  • 小西牛

    <++…..>++++++[-<++++++++++>]<+++.>++[-<———->]<—.>+[-<———->]<—.>++[-<———->]<——-……>++[-<++++++++++>]<+++++++.>+[-<++++++++++>]<+++.>++[-<———->]<——-..>++[-<++++++++++>]<+++++++.>++[-<———->]<——-.>+[-<———->]<—…>++++[-<++++++++++>]<.>+[-<———->]<—.>++[-<———->]<——-.+++++.>++[-<++++++++++>]<++.

    第9页(最后一页)

    我的第一个BrainFuck程序,请多指教啊。。。。。。。。。。。。。。。另,扰屏抱歉,代码实在是太多了。。。没办法。。。

    回复:精神可嘉,值得学习

  • zouxun

    [
    ] 是什么意思? 不明白

    做spoj3

  • ginger

    有什么牛鼻的,有本事就直接用0和1写程序, 我看发明和用这种语言的人是纯粹无聊自找罪受

    • 单位人情味

      哈哈!我就写了这种程序:000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
      只是,没有1

  • cjaizss

    偶写的brainfuck到C语言的编译器:
    +++++++++++++++++++++++++++++++++++.
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
    +++++.
    ———–.
    +++++++++.
    +++++++++.
    —————–.
    +.
    ———————————————————————.
    ++++++++++++++++++++++++++++.
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++.
    +.
    —————-.
    +++++.
    ++++++.
    —————————————————————–.
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
    ——————————————.
    —————————————————-.
    +++++++++++++++++++++++++.
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
    +++++.
    ———–.
    +++++++++.
    +++++++++.
    —————–.
    +.
    ———————————————————————.
    ++++++++++++++++++++++++++++.
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++.
    +.
    —————-.
    ++++++++.
    —.
    ——-.
    —————————————————-.
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
    ——————————————.
    —————————————————-.
    +++++++++++++++++++++++++.
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
    +.
    +.
    +++.
    +++++.
    ———.
    ———————————————————————.
    +++++++++++++++++++++++++++++++++.
    ———————————.
    +++++++++++..
    -.
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
    —————————————————–.
    ————————————————-.
    +++++++++++++++++++++++++.
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
    +.
    +.
    +++.
    +++++.
    ———.
    ———————————————————————.
    ++++++++++++++++++++++++++++++++++.
    ———————————-.
    ++++++++++.
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
    —————————————————.
    ++++++++++++++++++++++++++++++++++++++++++.
    –.
    +++++++++++++++.
    —————–.
    +++++.
    ——-.
    +++++++++++++++++.
    ————————————————————————–.
    +.
    ++++++++++++++++++.
    ————————————————-.
    +++++++++++++++++++++++++.
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
    +.
    +.
    +++.
    +++++.
    ———.
    ———————————————————————.
    +++++++++++++++++++++++++++++++++++.
    ———————————–.
    +++++++++++++..
    —.
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
    —————————————————–.
    ————————————————-.
    +++++++++++++++++++++++++.
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
    +.
    +.
    +++.
    +++++.
    ———.
    ———————————————————————.
    ++++++++++++++++++++++++++++++++++++.
    ————————————.
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
    +++++.
    -.
    —————–.
    +++++.
    ——-.
    +++++++++++++++++.
    ————————————————————————–.
    ++.
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
    ———————————————————————–.
    ++++++++++++++++++.
    ————————————————-.
    +++++++++++++++++++++++++.
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
    +.
    +.
    +++.
    +++++.
    ———.
    ———————————————————————.
    +++++++++++++++++++++++++++++++++++++.
    ————————————-.
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
    ——————————————————————-..
    ++++++++++++++.
    ————————————————-.
    +++++++++++++++++++++++++.
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
    +.
    +.
    +++.
    +++++.
    ———.
    ———————————————————————.
    ++++++++++++++++++++++++++++++++++++++.
    ————————————–.
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
    ———————————————————————..
    ++++++++++++++++.
    ————————————————-.
    +++++++++++++++++++++++++.
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
    +.
    +.
    +++.
    +++++.
    ———.
    ———————————————————————.
    +++++++++++++++++++++++++++++++++++++++.
    —————————————.
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
    —————.
    +.
    +++.
    ——-.
    ————————————————————-.
    ++.
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
    ———————————————————————–.
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
    —————————————————————————————————————–.
    +++++++++++++++++++++++++.
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
    +.
    +.
    +++.
    +++++.
    ———.
    ———————————————————————.
    ++++++++++++++++++++++++++++++++++++++++.
    —————————————-.
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
    ——————————————————————————————————————-.
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
    +++++.
    ——-.
    +++++++++++++++++.
    ———————————————————————————-.
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
    ———————–.
    —————————————.
    —-….
    +++++++++++++++++++++++++++++++++++++++++++++.
    ——————————–.
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
    —————————————————————————.
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
    ——————————————————————.
    ++++++++++++++++++++++++++++++++++++++++++++++.
    +++++.
    ++++++.
    ————————————————————————————.
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
    ————.
    ++++++++.
    +++++.
    ———————————————————————-.
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
    ——-.
    ——.
    —–.
    ———————————————————–.
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
    ————————.
    +++++.
    ——-.
    +++++++++++++++++.
    ————————————————————————.
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
    —————————————————.
    +++++++++++++++++++++++++++++++++++++++++++++++++++++.
    ———————————————————————–.
    ++++++.
    -….
    +++++++++++.
    ————————————————-..

    /////////////////////////////cjaizss compile////////////////////////
    > //0
    >
    + //1
    [
    , //input
    >>[-]>[-]>[-]>[-]>[-]>[-]>[-]>[-]<<<<<<<<>+>+>+>+>+>+>+>+<<<<<<<<>——————————————– //plus
    [-]>——————————————— //comma
    [<>-]<>>———————————————- //sub
    [<<>>-]<<>>>———————————————– //point
    [<<<>>>-]<<<>>>>————————————————————- //less
    [<<<<>>>>-]<<<<>>>>>————————————————————— //greater
    [<<<<<>>>>>-]<<<<<>>>>>>——————————————————————————————– //left square bracket
    [<<<<<<>>>>>>-]<<<<<<>>>>>>>———————————————————————————————- //right square bracket
    [<<<<<<<>>>>>>>-]<<<<<<<<-
    [
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
    [-]
    +++++++++.
    [-]
    ]
    ]
    <
    ]
    ////////////////////////////////////////////////////////////////

    [-]
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
    ————-.
    +++++++++++++++.
    +.
    —.
    —-.
    ——————————————————————————.
    ++++++++++++++++.
    +++++++++++.
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
    [-]
    ++++++++++.

  • Velicue

    Gennady!!! A young Genius

  • 动态规划

    看得头也晕了,无语

  • gnaggnoyil

    and 怎么搞?

  • dfd

    +++++++++++++++++++
    +++++++++++++++++++???????>>>>>>>>>>>>
    >>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<
    >>>>>>>>>>>>>>?>>>>>>>>>>>:””??????????????

  • Lamdy

    s.addcode “Function G():L(T)=L(T)*2:End Function”
    s.addcode “Function H():L(T)=L(T)2:End Function”

  • Lamdy

    +***+*+**.>+++**+**.–.

  • qirenrui

    指针、指针指向的字节、指针指向的单元分别是什么?不懂

  • qirenrui

    指针、指针指向的字节、指针指向的单元分别是什么?不懂

  • wecing

    因为ascii表的范围是0-255,所以可以用比较浪费空间的方法来实现变量的复制(我没打错字……)和比较。

    研究了一会,顺便把逻辑非、不带break/continue的for,还有if想出来了。有了这些就够了= =

  • psyclaudeZ

    在截图中出现了另一个神人……

  • psyclaudeZ

    截图中出现了另外一位神人……

  • pand

    正在接触中

  • +[>[.[-]]>[.[-]]>[.[-]],>,[->+>+----------[[-]]++++++++++>+>+>+

    +[>[.[-]]>[.[-]]>[.[-]],>,[->+>+<[-]>———-[[-]]<<>>++++++++++>+<<<[->>+>>+<<<[->———>>>+<<<++++++++]为什么TLE

  • 虾米

    看到这个我只想说。。Fuck you falimies one by one over and over again!!!!!

  • langyo

    Brainfuck实现3x-1
    假设目前指针已经指向欲计算的数字
    [-> > > <<>>[-<<>>]<[-<>]<[-]<-
    最前面是复制第一个数为后边三个数,后边三个都是减自己以加第一个数,于是就得到三份数字之和;再减一不解释;不支持负数

    其实还有兼容性更强的方案,乘多少随你定,但比较麻烦,就不写了

  • 十大阿三

    你的Brainfuck 竞赛是在哪里看到的?
    顺便推荐一下Anarchy Golf,可以提交Brainfuck.

  • 单位人情味

    我自己写了一个爆短的编译器:
    #include
    int main() {
    char code_pointer = 0, p = 0, m[300000], c[300000] = “”;
    std :: stack b; std :: map a;
    for(int i = 0; c[i] != 0; i ++) {
    if(c[i] == ‘[‘) b.push(i);
    else if(c[i] == ‘]’) {
    int n = b.top();
    b.pop();
    a[i] = n; a[n] = i;
    }
    }
    for(; c[P] != 0; code_pointer ++){
    if(c[P] == ‘>’) ++ p;
    else if(c[P] == ‘<') — p;
    else if(c[P] == '+') ++ m[p];
    else if(c[P] == '-') — m[p];
    else if(c[P] == '.') putchar(m[p]);
    else if(c[P] == ',') m[p] = getchar();
    else if(c[P] == '[') { if(m[p] == 0) code_pointer = a[code_pointer]; }
    else if(c[P] == ']') if(m[p]) code_pointer = a[code_pointer];
    }
    return 0;
    }
    语言:C++

  • 单位人情味

    完了, 忘了加头文件了。。。T_T

  • 单位人情味

    #include
    int main() {
    char code_pointer = 0, p = 0, m[300000], c[300000] = “”;
    std :: stack b; std :: map a;
    for(int i = 0; c[i] != 0; i ++) {
    if(c[i] == ‘[‘) b.push(i);
    else if(c[i] == ‘]’) {
    int n = b.top();
    b.pop();
    a[i] = n; a[n] = i;
    }
    }
    for(; c[P] != 0; code_pointer ++){
    if(c[P] == ‘>’) ++ p;
    else if(c[P] == ‘<') — p;
    else if(c[P] == '+') ++ m[p];
    else if(c[P] == '-') — m[p];
    else if(c[P] == '.') putchar(m[p]);
    else if(c[P] == ',') m[p] = getchar();
    else if(c[P] == '[') { if(m[p] == 0) code_pointer = a[code_pointer]; }
    else if(c[P] == ']') if(m[p]) code_pointer = a[code_pointer];
    }
    return 0;
    }

  • 单位人情味

    那个Brainfuck到C的Brainfuck编译器,你们怎么都不运行一下的呀?
    全输出乱码。

  • 单位人情味

    啊?头文件只能自己补上了。。。

  • Bob

    我写了一个Brainfuck游戏(猜密码游戏)
    我把它搞得非常好看:
    >++++++++ [ – ]
    >++++++ [-]
    >+++++++++++[ – ]
    >>++++++++ [-]
    >++++++++ [-]
    <<, [-]
    , [-<>]
    , [-<<>>]
    <<>>>T hi.[]]
    >>>>>.<<<>>s p roj.[]]
    >>>>.<<>ect .is by[]]
    >>>. [ B-ob ]

  • Bob

    Uh oh. 自动把空格删了。

  • Bob

    缩减你的AC代码:
    >>,>,<<>——–<
    >—-[>>+>]<[<]>++++++++<>++++>——–<>–[>+>]
    <[>++++++++<
    >++>[<[-],>[-]<<<
    >——–<>–
    –[>>+>]<[<]>++++
    ++++<>++++>–
    ——<>–[>+>]<[>++++++++<>++>]

    • Bob

      >>,>,<<>——–<
      >—-[>>+>]<[<]>++++++++<>++++>——–<>–[>+>]
      <[>++++++++<
      >++>[<[-],>[-]<<<
      >——–<>–
      –[>>+>]<[<]>++++
      ++++<>++++>–
      ——<>–[>+>]<[>++++++++<>++>]

  • pascalfans

    大佬 膜拜 %%%

  • Thomasguo666

    居然和Tourist连着

发表评论

2  ×    =  6