2017-01-18 1 views
-1

ich mit diesem für SchleifenIch brauche in Java-Code Pyramide helfen

1****** 
12***** 
123**** 
1234*** 
12345** 
123456* 
1234567 

Mit 3 Hilfe benötigen diese abgeschlossen sein wird. Ich habe versucht, diese

public class Pattren { 
    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 
     // TODO code application logic here 
     int i,j,k; 
     for (i = 1; i <= 7; i++) 
     { 
      for (j = 1; j <= i; ++j) 
      { 

        System.out.print((j)+("\n")); 

       for (k = 7 - i; k >= 1; k--) 
       { 
        System.out.print("* "); 

       } 
      } 
     }   
    } 
} 

Aber es gibt einige logische Problem damit. Ich brauche Verbesserungen in diesem Code. Ich habe diese Ausgabe.

1 
* * * * * * 1 
* * * * * 2 
* * * * * 1 
* * * * 2 
* * * * 3 
* * * * 1 
* * * 2 
* * * 3 
* * * 4 
* * * 1 
* * 2 
* * 3 
* * 4 
* * 5 
* * 1 
* 2 
* 3 
* 4 
* 5 
* 6 
* 1 
2 
3 
4 
5 
6 
7 
+0

„Aber es gibt etwas log itisches Problem damit. Ich brauche Verbesserungen im Code "- können Sie genauer sein? – alfasin

+1

Das funktioniert bei mir jedes Mal:' System.out.print ("1 ****** \ n12 ***** \ n123 **** \ n1234 *** \ n12345 ** \ n123456 * \ n1234567 ");' – shmosel

Antwort

0

Eine einfachere Version würde

sein
int i,j; 
    for (i = 1; i <= 7; i++) 
    { 
     for (j = 1; j <= 7; ++j) 
     { 
      if (j <= i) { 
       System.out.print(j); 
      } 
      else { 
       System.out.print("*"); 
      } 
     } 
     System.out.println(); 
    } 

Ausgabe

1****** 
12***** 
123**** 
1234*** 
12345** 
123456* 
1234567 
+0

Sie können 'System.out.println()' ohne ein Argument aufrufen. – shmosel

+0

Vielen Dank Es erhalten Sie mir die genaue Ausgabe. –

+0

@shmosel Thanks –

0

Nachfolgend finden Sie eine Lösung mit viel weniger Codezeilen:

public static void main(String[] args) { 
    StringBuilder sb = new StringBuilder(); 
    String s = ""; 
    for(int i=1; i<=7; i++){ 
     s += i; 
     sb.append(String.format("%-7s", s).replace(" ", "*")).append("\n"); 
    } 
    System.out.println(sb.toString()); 
}