The cell at the end of the rainbow

54 Bytes

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

119 x 252 = 29988. Straightforward nested loop.

I used this tool to verify that the pointer stops at 29999.


50 bytes

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

Try It Here!

The first section (>+[>+[<]>->+]>-<<) sets up the tape as

0*12 121' 0 110

The next section ([>>-------[[>]+[<]>-]<<-]) iterates 121 times, appending 249 1s to the end of the tape each time. If you're quick with math, you might realise this 121*249 results in 30129 1s, but the first iteration has the leftover 110 to deal with and only appends (110-7) 103 1s to the tape, meaning there's only 29983 1s. The final tape looks like:

0*12 0' 0 0 1*29983 0 ???

And a final >>>[>]>. to print the value.

Some other algorithms of note:

  • 252*119 = 29988 (also 50 bytes)
  • 163*184 = 29992 (56 bytes)
  • 204*147 = 29988 (60 bytes)
  • 153*196 = 29988 (56 bytes)
  • 191*157 = 29987 (57 bytes)
  • 254*118 = 29972 (56 bytes)
    • This one is the one I consider the next closest to beating 50, since the extra bytes are basically just travelling the extra distance. If I could find an algorithm that generates 118 and travels further than 14 cells, this could beat it.

81

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

This moves over by 150 cells 200 times.

This is much longer than I'd like it to be, and there's a serious obstacle to golfing:

I no longer know why I works.

This is littered with compensations for off-by-ones to the point where some of them could probably cancel out. I've added and deleted various segments so much that I no longer remember why I put certain things where they are (for example, why does the first part initialize the tape cells to 199 and 151 instead of 200 and 150?).

Here is my commented version of this monstrosity anyways, in the hope that I (or someone else) might find them useful:

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

0 0 0 199' 155

[
  n' k 0
  >[
    n k' j
    ->+[[->+<]<]>
    0' n k-1 j+1 OR
    n 0 0' j+1
    >>
  ]
  0*k n 0 0 k 0'
  <[-<<+>>]<<<-
  0*k n-1' k
]
>-------[[->+<]>-]>.