2015-06-09 14 views
5

Tôi đang cố gắng tạo một cây thông Noel bằng các vòng lặp và lồng nhau cho các vòng lặp. Đối với tôi để làm điều đó tôi cần để có thể tạo ra một kim tự tháp với *. Tôi đã thử vô số lần và tôi đang gặp vấn đề trong việc tạo ra một lần. Đây là mã của tôi:Tạo cây thông Noel sử dụng cho các vòng

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(); 
} 

Những gì tôi đang cố gắng làm là:

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

viết logic trên một mảnh giấy. –

Trả lời

6

Hãy thử mã này đơn giản hơn nhiều:

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(); 
    } 
} 
} 

Nó sử dụng 3 vòng:

  • đầu tiên cho số hàng,
  • giây thứ hai để in dấu cách,
  • thứ ba để in dấu hoa thị.
+0

Cảm ơn nó đã hoạt động. Bạn có thể giải thích tại sao bạn đã làm 2 * i + 1 –

+0

Lần lặp đầu tiên ((2 * 0) +1) = 1 sao. Lần lặp thứ hai ((2 * 1) +1) = 3 sao. Lần lặp thứ ba ((2 * 2) +1) = 5 sao, v.v. – mcw

+0

Xem cho hàng thứ 1 có 1 sao.Đối với lần 2 có 3, cho thứ 3 có 5.So nó theo quy tắc chung của 2 * (n-1) +1. Khi tôi bắt đầu mẫu 0 như vậy (n-1) = i. Do đó số lượng các ngôi sao trong hàng (i + 1) = 2 * i + 1. –

7

Bạn có thể làm điều đó với logic đơn giản

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

ở trên chương trình in cây Xmas. –

+3

Trong khi mã này có thể trả lời câu hỏi, cung cấp ngữ cảnh bổ sung về cách thức và/hoặc lý do giải thích vấn đề này sẽ cải thiện giá trị lâu dài của câu trả lời. –

-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(); 
     } 
    } 
} 
Các vấn đề liên quan