void setup() { print(getSierpinskiTriangle(3)); } String getSierpinskiTriangle(int n) { if ( n == 0 ) { return "*"; } String s = getSierpinskiTriangle(n-1); String [] split = s.split("\n"); int length = split.length; // Top triangle String ns = ""; String top = buildSpace((int)pow(2, n-1)); for ( int i = 0; i < length; i++ ) { ns += top; ns += split[i]; ns += "\n"; } // Two triangles side by side for ( int i = 0; i < length; i++ ) { ns += split[i]; ns += buildSpace(length-i); ns += split[i]; ns += "\n"; } return ns.toString(); } String buildSpace(int n) { String ns = ""; while ( n > 0 ) { ns += " "; n--; } return ns; }