Printing a Thousand Numbers without Using Loop

Someone asked "How to print from 1 to 1000, alternating the sign, without looping, using a single statement."

Here is my take on it:

int main(int _,char**__){return(_<1001)?printf("%d ",(_&1)?_:-_),main(_+1,__):0;}

For the sake of brevity, here shows only the beginning and the end of it's output:

1 -2 3 -4 5 -6 7 -8 9 -10 11 -12 ... 989 -990 991 -992 993 -994 995 -996 997 -998 999 -1000