[Question]
  [
I have a problem for a cyber club that asks you to print:
```
ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!
```
Using Brainf\*\*k in 29 bytes or less without using the ',' character. 
I have a working code:
```
++++++++++[>++++++>+++++++++<<-]>-->.<[>-.<-]
```
However my loop is too long, sending me 16 bytes over the limit.
Is there a more efficient way to set the second and third cell to 58 and 90 so I can run my second loop? Or is there a better way to do this all together that I am just not seeing?
  
[Answer]
## ~~27~~ 24 bytes
```
++[<++[++<]>>>+]<[-<-.>]
```
~~Spent a whole day basically writing up a brute forcer and watching the results come in. Now I can get back to doing some actual work...~~ Another day of brute forcing later...
[Try it online!](http://brainfuck.tryitonline.net/#code=KytbPCsrWysrPF0-Pj4rXTxbLTwtLj5d&input=)
The component `++[<++[++<]>>>+]` initialises the tape to
```
[130, 0, 0, 0, 91, 59, 0]
                       ^
```
which is just perfect for what we need!
[Answer]
# 30 bytes
```
-<-[>+>-[---<]>]>++>+[---<.->]
```
[Try it online!](http://brainfuck.tryitonline.net/#code=LTwtWz4rPi1bLS0tPF0-XT4rKz4rWy0tLTwuLT5d&input=)
*85* and *171* are fairly easy to generate in brainfuck (modular inverses of *3* and *-3*). *85* is pretty close to *90*, and *171* is pretty close to *177* (*59·3*), which is used here. With a bit of hackery, I'm able to produce *88* and *176* instead.
Still one byte short of the target, though.
**Other suggestions**
In general, it's shorter to iterate over a list, multiplying by a constant, rather than the other way. This is especially true for 3 or more values. For example, this:
```
++++++++++[>++++++>+++++++++<<-]
```
can be written as:
```
+>++++[+++++[>++++++++++<-]<]>
```
There were only two inner values, so it's not much of an improvement in this case. In fact, just refactoring is one byte shorter:
```
+++++[>++++++[>++>+++<<-]<-]>
```
Multiplying *30* by *2* and *3*, rather than *10* by *6* and *9*. With Martin Büttner's suggestion, this is already down to *38* bytes, without much change to the original:
```
+++++[>++++++[>++>+++<<-]<-]>>-[>.-<-]
```
[Answer]
# 34 bytes
Saved you 11 bytes, but still 5 bytes too long...
```
+[--->++<]>++++<+[--------->.-<]>.
```
I've spent hours already, hopefully someone can improve on this.
]