Ich soll dieses Sierpinski-Dreiecks-Programm so modifizieren, dass die Anzahl der Dreiecke gezählt wird. Also habe ich versucht, jedes Mal, wenn es ein Dreieck macht, die Anzahl zu erhöhen, aber irgendwie erhöht sich meine Zählung nicht.Anzahl der Dreiecke in Sierpinskis Dreieck
public class SierpinskiTriangle extends Applet
{
public int SeirpTri(Graphics g, int x1, int y1, int x2, int y2, int x3, int y3, int n, int count)
{
this.setBackground(new Color(0,0,0));
this.setSize(700, 500);
if (n == 0)
{
g.setColor(new Color(0, 255, 0));
g.drawLine(x1, y1, x2, y2); // if n = 0 draw the triangle
g.drawLine(x2, y2, x3, y3);
g.drawLine(x3, y3, x1, y1);
return 1;
}
int xa, ya, xb, yb, xc, yc; // make 3 new triangles by connecting the midpoints of
xa = (x1 + x2)/2; //. the previous triangle
ya = (y1 + y2)/2;
xb = (x1 + x3)/2;
yb = (y1 + y3)/2;
xc = (x2 + x3)/2;
yc = (y2 + y3)/2;
SeirpTri(g, x1, y1, xa, ya, xb, yb, n - 1, count++); // recursively call the function using the 3 triangles
SeirpTri(g, xa, ya, x2, y2, xc, yc, n - 1, count++);
SeirpTri(g, xb, yb, xc, yc, x3, y3, n - 1, count++);
return count;
}
public void paint(Graphics g)
{
int recursions = 3;
int count=1;
// call the recursive function sending in the number of recursions
SeirpTri(g, 319, 0, 0, 479, 639, 479, recursions, count);
// Counting triangles using math algorithm;
int count2 = 1;
if (recursions ==0) {
count2 =1;
}
else {
count2 = (int) Math.pow(3,(recursions-1)) * 3;
}
System.out.println("Correct answer is: " +count2);
System.out.println("Answer using recurvise is: " +count*3);
}
}
ist nicht die Antwort 'Unendlichkeit'? :-) – Tenner
Es könnte einfacher sein, eine globale statische Variable zu verwenden, um die Anzahl zu verfolgen. – mellamokb