#C, 47 46 45 43 bytes
Takes input from the command line
f(n){for(n&&f(n-1);~n;putchar(n--?42:10));} Basically if n is not 0 recurse on n-1. at the top of the recursion where n is 0 it just prints a newline, the for loop terminates when n is -1 or ~n is zero, otherwise it prints ASCII 42 which is '*'. main(c,v)char**v; { f(atoi(v[1])); } a.exe 3 * ** ***