Skip to content

Instantly share code, notes, and snippets.

@itsamirhn
Created June 17, 2022 08:33
Show Gist options
  • Save itsamirhn/aa9f1ac9159af224172d98c3743cbfb1 to your computer and use it in GitHub Desktop.
Save itsamirhn/aa9f1ac9159af224172d98c3743cbfb1 to your computer and use it in GitHub Desktop.
Draw Sierpinski Triangle using * in output.
import java.util.Scanner;
public class Sierpinski {
public static String[] T(int n) {
if (n == 0) {
String[] ans = new String[1];
ans[0] = "*";
return ans;
}
String[] prev = T(n - 1);
int h = prev.length;
int w = prev[0].length();
String[] ans = new String[h * 2];
for (int i = 0; i < h; i++) ans[i] = " ".repeat(w / 2 + 1) + prev[i] + " ".repeat(w / 2 + 1);
for (int i = 0; i < h; i++) ans[i + h] = prev[i] + " " + prev[i];
return ans;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
String[] t = T(n);
for (String s : t) System.out.println(s);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment