37 lines
708 B
Plaintext
37 lines
708 B
Plaintext
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;
|
|
}
|