2015-06-09 23 views
5

Próbuję zrobić choinkę za pomocą pętli i zagnieżdżonych dla pętli. Aby to zrobić, muszę być w stanie stworzyć piramidę z *. Próbowałem już niezliczoną ilość razy i mam problemy z jej zrobieniem. Tu jest mój kodu:Tworzenie choinki przy użyciu pętli

for(int i=1;i<=10;i++){ 
    for(int j=10;j>i;j--){ 
     System.out.println(" "); 
    } 

    for(int k=1;k<=i;k++){ 
     System.out.print("*"); 
    } 

    for(int l=10;l<=1;l++){ 
     for(int h=1;h<=10;h++){ 
      System.out.print(" "); 
     } 
    } 

    System.out.println(); 
} 

Co staram się zrobić to:

 * 
    *** 
    ***** 
    ******* 
+1

napisać logikę na kawałek papieru. –

Odpowiedz

6

Spróbuj znacznie prostszy kod:

public class ChristmasTree { 

public static void main(String[] args) { 

    for (int i = 0; i < 10; i++) { 
    for (int j = 0; j < 10 - i; j++) 
    System.out.print(" "); 
    for (int k = 0; k < (2 * i + 1); k++) 
    System.out.print("*"); 
    System.out.println(); 
    } 
} 
} 

Używa 3 pętle:

  • pierwsza dla liczby wierszy,
  • Druga do drukowania przestrzeni,
  • trzecia do drukowania gwiazd.
+0

Dzięki temu zadziałało. Czy mógłbyś wyjaśnić, dlaczego zrobiłeś 2 * i + 1 –

+0

Pierwsza iteracja ((2 * 0) +1) = 1 gwiazdka. Druga iteracja ((2 * 1) +1) = 3 gwiazdki. Trzecia iteracja ((2 * 2) +1) = 5 gwiazdek i tak dalej. – mcw

+0

Zobacz w pierwszym rzędzie znajduje się 1 gwiazdka. Dla 2 są 3, dla 3 są 5. To jest zgodne z ogólną zasadą 2 * (n-1) +1. Ponieważ nasz i zaczyna się od 0, więc (n-1) = i. Tak więc liczba gwiazd w (i + 1) th rzędzie = 2 * i + 1. –

7

Można zrobić to z prostej logiki

for (int i = 0; i < 4; i++) 
      System.out.println(" *******".substring(i, 4 + 2*i)); 
0
public class Stars { 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 
     Scanner s=new Scanner(System.in); 
     System.out.println("Enter Row/Column Value::"); 
     int i,j,k,n; 
     n=s.nextInt(); 
     for(i=1; i<n; i++){ 
      for(j=n+(n/2); j>i; j--){ 
       System.out.print(" ");} 
      for(k=1; k<=2*i-1; k++){ 
       System.out.print("*");} 
      System.out.println(""); 
      } 
     for(i=1; i<n+(n/2); i++){ 
      for(j=n+(n/2); j>i; j--){ 
       System.out.print(" ");} 
      for(k=1; k<=2*i-1; k++){ 
       System.out.print("*");} 
      System.out.println(""); 
     } 
      for(i=1; i<n-(n/2); i++){ 
      for(j=n+(n/2); j>1; j--){ 
       System.out.print(" ");} 
      for(k=n/2; k<=(n/2)+1; k++){ 
       System.out.print("*");} 
      System.out.println(""); 
     } 
    } 
} 
+0

powyżej programu wydrukuj drzewo Xmas. –

+3

Chociaż ten kod może odpowiedzieć na pytanie, podanie dodatkowego kontekstu dotyczącego tego, w jaki sposób i/lub dlaczego rozwiązuje problem, poprawiłoby długoterminową wartość odpowiedzi. –

-1
import java.util.Scanner; 

public class cmastree{ 

    public static void main (String[]args){ 
     Scanner keyboard=new Scanner (System.in); 

     int j; 
     System.out.println ("Enter a number"); 
     j=keyboard.nextInt(); 
     /*take the above part out and change the j variable if you want to set 
     the size*/ 
     for(int i=1; i<=j; i+=2){ 
      int numSpaces = (j-i)/2; 
     for (int k=0; k<numSpaces; k++){ 
      System.out.print(" "); 
      } 
     for(int k=0; k<numSpaces; k++){ 
      System.out.print("*"); 
      } 
      System.out.println(); 
     } 
    } 
}