在brainfuck中打印一个号码?

Lar*_*ars 15 brainfuck

我已经搜索了一段时间,但我找不到任何可以帮助我的东西.

假设第一个单元格(或值等)等于165.我如何打印"165"?

我的想法是将数字分成单独的部分:1,6和5.打印它们不是问题.

注意:我不只是想打印"165".我想打印第一个单元格的值.无论是165,255,0,1还是其他任何东西.

itc*_*yny 12

使用着名的模数程序(http://esolangs.org/wiki/brainfuck_algorithms将帮助你)

>+++++++++++[-<+++++++++++++++>] # initialize 165 at first cell
>++++++++++<<[->+>-[>+>>]>[+[-<+>]>+>>]<<<<<<]>>[-]>>>++++++++++<[->-[>+>>]>[+[-
<+>]>+>>]<<<<<]>[-]>>[>++++++[-<++++++++>]<.<<+>+>[-]]<[<[->-<]++++++[->++++++++
<]>.[-]]<<++++++[-<++++++++>]<.[-]<<[-<+>]
Run Code Online (Sandbox Code Playgroud)


Ced*_*amo 10

我创建了一个简单的语言编译成brainfuck,可以在这里找到:http://code.google.com/p/brainfuck-compiler.有一个用java实现的语言的编译器.

我使用该语言中的以下函数来输出数字.也许你可以分析生成的代码,看看是否有任何东西对你有用.虽然有一个警告,它确实会在细胞周围产生一些冗余的复制(从来没有对此进行优化).无论如何这里是一个示例程序和它生成的BF代码.(请注意,缩进必须是我的语言标签)

declare n, 165
declare digits
while n
    push n % 10
    digits = digits + 1
    n = n / 10
if digits
    while digits
        out pop + 48
        digits = digits - 1
else
    outs "0"
Run Code Online (Sandbox Code Playgroud)

以下是生成的代码:

>>>>>>>>>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++[<+>-]<[>>+>+<<<-]>>>[<<<+>>>-]<[[-]<<[>>>+>+<<<<-]>>>>[<<<<+>>>>-
]++++++++++<[>>+>+<<<-]>>>[<<<+>>>-]<[>+<-]>[<<[>>>+>+<<<<-]>>>>[<<<<+>>>>-]<[>+
<<-[>>[-]>+<<<-]>>>[<<<+>>>-]<[<-[<<->>[-]]+>-]<-]<<+>]<[>>+<<-]>>[<<<[>+>+<<-]>
>[<<+>>-]>-]<<[<<->>-]<[-]<[>>>>>>>>+<<<<<<<<-]>>>>>>>>>[>>]+[<<]>[>[>>]<+<[<<]>
-]<<<<<<<<<<[>>+>+<<<-]>>>[<<<+>>>-]+[<+>-]<<<[-]>>[<<+>>-]<<<[>>>+>+<<<<-]>>>>[
<<<<+>>>>-]++++++++++<[>>+<<-]>>[<[>>+>+<<<-]>>>[<<<+>>>-]<[>+<<-[>>[-]>+<<<-]>>
>[<<<+>>>-]<[<-[<<<->>>[-]]+>-]<-]<<<+>>]<[-]<<<<[-]>>>[<<<+>>>-]<<<[>>>+>+<<<<-
]>>>>[<<<<+>>>>-]<[<+>-]<]<[>+>+<<-]>>[<<+>>-]<[>+<[-]]+>[<[-]<[>>>+>+<<<<-]>>>>
[<<<<+>>>>-]<[[-]>>>>>>>>[>>]<[<[<<]<<<<<+>>>>>>>[>>]<-]<-<<[<<]<<<<<>++++++++++
++++++++++++++++++++++++++++++++++++++[<+>-]<.[-]<<<<[>>>>+>+<<<<<-]>>>>>[<<<<<+
>>>>>-]+[<->-]<<<<<[-]>>>>[<<<<+>>>>-]<<<<[>>>>+>+<<<<<-]>>>>>[<<<<<+>>>>>-]<[<+
>-]<]<[-]]<[>>++++++[<++++++++>-]<.[-]<[-]]<[-]<[-]>>>>>>>>>>>>[>[-]>]<<[-<<]<<<
<<<<<<<<<<<<<<[-]<[-]
Run Code Online (Sandbox Code Playgroud)