7

私のJavaコースでの私の割り当ては、3つの三角形を作成することです。1つは左揃え、もう1つは右揃え、もう1つは中央に配置されます。どのタイプの三角形のメニューを作成してから、必要な行数を入力する必要があります。三角形はこのように見える必要があります

*
**
***
****


   *
  **
 ***
****


  *
 ***
*****

これまでのところ、左揃えの三角形を作成することはできましたが、他の2つを取得できないようです。グーグルを試してみましたが、何も表示されませんでした。誰か助けてもらえますか?私はこれまでにこれを持っています。

import java.util.*;
public class Prog673A
{
    public static void leftTriangle()
    {
        Scanner input = new Scanner (System.in);
        System.out.print("How many rows: ");
        int rows = input.nextInt();
        for (int x = 1; x <= rows; x++)
        {
            for (int i = 1; i <= x; i++)
            {
                System.out.print("*");
            }
            System.out.println("");
        }
    }
    public static void rightTriangle()
    {
        Scanner input = new Scanner (System.in);
        System.out.print("How many rows: ");
        int rows = input.nextInt();
        for (int x = 1; x <= rows; x++)
        {
            for (int i = 1; i >= x; i--)
            {
                System.out.print(" ");
            }
            System.out.println("*");
        }
    }
    public static void centerTriangle()
    {

    }
    public static void main (String args [])
    {
        Scanner input = new Scanner (System.in);
        System.out.println("Types of Triangles");
        System.out.println("\t1. Left");
        System.out.println("\t2. Right");
        System.out.println("\t3. Center");
        System.out.print("Enter a number: ");
        int menu = input.nextInt();
        if (menu == 1)
            leftTriangle();
        if (menu == 2)
            rightTriangle();
        if (menu == 3)
            centerTriangle();
    }
}

サンプル出力:

Types of Triangles
1.  Left
2.  Right
3.  Center
Enter a number (1-3):  3
How many rows?: 6

     *
    ***
   *****
  *******
 *********
***********
4

21 に答える 21

15

ヒント:各行について、最初にいくつかのスペースを印刷してから、いくつかの星を印刷する必要があります。スペースの数は行ごとに1つ減少し、星の数は増加する必要があります。

中央に出力するには、行ごとに星の数を2つ増やします。

于 2012-12-26T23:44:06.037 に答える
6

Ilmari Karonenには良いアドバイスがありますが、少し一般化したいと思います。一般的に、「どうすればコンピュータにこれを実行させることができますか?」と尋ねる前に。「どうすればいいですか?」と尋ねます

それで、誰かがあなたに空のWord文書を与えて、三角形を作成するように頼んだら、あなたはそれをどのようにやっていくのでしょうか?どのような解決策を思いついたとしても、通常、Java(または他のプログラミング言語)に翻訳するのは難しくありません。これは最善の解決策ではないかもしれませんが、(うまくいけば!)うまくいくでしょうし、より良い解決策を示すかもしれません。

たとえば、ベースを入力してから1行上に移動し、次に高い行を入力するなどと言うかもしれません。これは、Javaでも同じことができることを示しています。文字列のリストを作成します。ベースからトップへ、そしてそれらを逆にします。これは、逆の順序で作成するだけで、逆にする必要がないことを示している可能性があります。そして、それはあなたがもはやリストを必要としないことを示唆するかもしれません、なぜならあなたはそれらを同じ順序で作成して印刷するだけだからです-その時点であなたは本質的にIlmariKaronenのアドバイスを思いついたのです。

あるいは、別の方法を思いついたかもしれません。IlmariKaronenのアイデアをもっと直接的に思いついたかもしれません。とにかく、それはあなたがこれと他の多くの問題を解決するのを助けるはずです。

于 2012-12-27T00:15:48.677 に答える
2

これは通常の三角形用です。

for (int i = 0; i < 5; i++) {
    for (int j = 5; j > i; j--) {
        System.out.print(" ");
    }
    for (int k = 1; k <= i + 1; k++) {
        System.out.print(" *");
    }
    System.out.print("\n");
}

出力:

      *
     * *
    * * *
   * * * *
  * * * * *

これは左三角形用で、印刷前にスペースを削除しただけ*です:

for (int i = 0; i < 5; i++) {
    for (int j = 5; j > i; j--) {
        System.out.print(" ");
    }
    for (int k = 1; k <= i + 1; k++) {
        System.out.print("*");
    }
    System.out.print("\n");
}

出力:

     *
    **
   ***
  ****
 *****
于 2015-01-02T06:42:48.113 に答える
2
package apple;

public class Triangle {
    private static final int row = 3;

    public static void main(String... strings) {
        printLeftTriangle();
        System.out.println();
        printRightTriangle();
        System.out.println();
        printTriangle();
    }

    // Pattern will be
    // *
    // **
    // ***
    public static void printLeftTriangle() {
        for (int y = 1; y <= row; y++) {
            for (int x = 1; x <= y; x++)
                System.out.print("*");
            System.out.println();
        }
    }

    // Pattern will be
    //   *
    //  **
    // ***
    public static void printRightTriangle() {
        for (int y = 1; y <= row; y++) {
            for (int space = row; space > y; space--)
                System.out.print(" ");
            for (int x = 1; x <= y; x++)
                System.out.print("*");
            System.out.println();
        }
    }

    // Pattern will be
    //   *
    //  ***
    // *****
    public static void printTriangle() {
        for (int y = 1, star = 1; y <= row; y++, star += 2) {
            for (int space = row; space > y; space--)
                System.out.print(" ");
            for (int x = 1; x <= star; x++)
                System.out.print("*");
            System.out.println();
        }
    }
}
于 2017-04-07T13:03:01.440 に答える
2

左の三角形-***



from above pattern we come to know that-
1)we need to print pattern containing n rows (for above pattern n is 4).
2)each  row contains star and no of stars i each row is incremented by 1.
So for Left alinged triangle we need to use 2 for loop.
1st "for loop" for printing n row.
2nd  "for loop for printing stars in each rows. 


 Code for  Left alinged triangle-

 public static void leftTriangle()
{
       /// here  no of rows is 4
 for (int a=1;a<=4;a++)// for loop for row
 {   
 for (int b=1;b<=a;b++)for loop for column
 {
 System.out.print("*");
 }

System.out.println();}
}

右三角形-
***



from above pattern we come to know that-
1)we need to print pattern containing n rows (for above pattern n is 4).
 2)In each  row we need to print spaces followed by a star & no of spaces            in each row is decremented by 1.
 So for Right alinged triangle we need to use 3 for loop.
 1st "for loop" for printing n row.
 2nd  "for loop for printing spaces.
 3rd "for loop" for printing stars.

Code for Right alinged triangle -

public void rightTriangle()
{
    // here 1st print space and then print star
  for (int a=1;a<=4;a++)// for loop for row
 { 
 for (int c =3;c>=a;c--)// for loop fr space
 {  
 System.out.print(" ");
 }
 for (int d=1;d<=a;d++)// for loop for column
 { 
 System.out.print("*");   
 }
 System.out.println(); 
 }
 }

センタートライアングル-
***



上記のパターンから、1)n行を含むパターンを印刷する必要があることがわかります(上記のパターンの場合、nは4です)。2)最初に各行に、スペース、スター、スペースの順に印刷する必要があります。開始時の各行のスペースの数は1ずつ減らされます。したがって、右向きの三角形の場合は、3forループを使用する必要があります。n行を印刷するための最初の「forループ」。2番目の「印刷スペースのforループ。3番目の「forloop」は星を印刷します。

センタートライアングルのコード-

public  void centerTriangle()
{   
for (int a=1;a<=4;a++)// for lop for row
{   
for (int c =4;c>=a;c--)// for loop for space
{  
System.out.print(" ");
}
for (int b=1;b<=a;b++)// for loop for column
{
System.out.print("*"+" ");
}
System.out.println();}
}

3つのパターンすべてを印刷するためのコード--publicclassspace4 {public static void leftTriangle(){///ここでは行の数は4 for(int a = 1; a <= 4; a ++)// for loop for row {
for( int b = 1; b <= a; b ++)for loop for column {System.out.print( "*"); }

System.out.println();}
}

public static void rightTriangle()
{
    // here 1st print space and then print star
  for (int a=1;a<=4;a++)// for loop for row
 { 
 for (int c =3;c>=a;c--)// for loop for space
 {  
 System.out.print(" ");
 }
 for (int d=1;d<=a;d++)// for loop for column
 { 
 System.out.print("*");   
 }
 System.out.println(); 
 }
 }

public static void centerTriangle()
{   
for (int a=1;a<=4;a++)// for lop for row
{   
for (int c =4;c>=a;c--)// for loop for space
{  
System.out.print(" ");
}
for (int b=1;b<=a;b++)// for loop for column
{
System.out.print("*"+" ");
}
System.out.println();}
}
public static void main (String args [])
{
space4 s=new space4();
s.leftTriangle();
s.rightTriangle();
s.centerTriangle();
}
}
于 2017-09-21T17:02:53.913 に答える
1

1)通常の三角形

package test1;


 class Test1 {

     public static void main(String args[])
     {
         int n=5;
     for(int i=0;i<n;i++)
     {

         for(int j=0;j<=n-i;j++)
         {

             System.out.print(" ");
         }

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

         System.out.println("\n");

     }

     }

2)直角三角形

package test1;


 class Test1 {

     public static void main(String args[])
     {
         int n=5;
     for(int i=0;i<n;i++)
     {

         for(int j=0;j<=n-i;j++)
         {

             System.out.print(" ");
         }

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

         System.out.println("\n");

     }

     }


}

     }

3)左三角三角形

package test1;


 class Test1 {

     public static void main(String args[])
     {
         int n=5;
     for(int i=0;i<n;i++)
     {

         for(int j=0;j<=i;j++)
         {

             System.out.print("*");
         }

         System.out.println("\n");

     }

     }


}
于 2015-02-08T06:06:48.350 に答える
1

私はこれがかなり遅いことを知っていますが、私は私の解決策を共有したいと思います。

public static void main(String[] args) {
    String whatToPrint = "aword";
    int strLen = whatToPrint.length(); //var used for auto adjusting the padding
    int floors = 8;
    for (int f = 1, h = strLen * floors; f < floors * 2; f += 2, h -= strLen) {
        for (int k = 1; k < h; k++) {
                System.out.print(" ");//padding
            }
        for (int g = 0; g < f; g++) {
            System.out.print(whatToPrint);
        }
        System.out.println();
    }
}

三角形の左側のスペースは、印刷する文字または単語に応じて自動的に調整されます。

もしそうならwhatToPrint = "x"floors = 3それは印刷されます

x xxx xxxxx スペースの自動調整がない場合は、次のようになります(whatToPrint = "xxx"同じ階数)

xxx xxxxxxxxx xxxxxxxxxxxxxxx

そこで、発生しないように簡単なコードを追加しました。

左半分の三角形の場合は、とをに変更するだけstrLen * floorsです。strLen * (floors * 2)f +=2f++

右半分の三角形の場合は、このループを削除するfor (int k = 1; k < h; k++)か、に変更h0ます。削除する場合は、を削除しないでくださいSystem.out.print(" ");

于 2017-09-24T17:38:13.997 に答える
0

直角三角形の場合、各行について:

  • 最初に:0から。までのスペースを印刷する必要がありますrowNumber - 1 - i
  • \*2番目:からrowNumber - 1 - iに印刷する必要がありますrowNumber

注: iは0からの行インデックスであり、は行rowNumberrowNumberです。

中央の三角形の場合:「直角三角形」に加え \*て、行のインデックスに従って追加するように見えます(たとえば、最初の行ではインデックスが0であるため何も追加せず、2番目の行では1つの'*'を追加します。の上)。

于 2012-12-27T09:15:17.583 に答える
0

三角形の場合、2つの代わりに3つのループが必要です。1つの外側のループで行の数を繰り返します。メインループ内の2つの並列ループはループの数を減らします。2番目のループの印刷物は' 'の数を増やします。正確なロジックも指定しますが、最初にスペースの数とすべての行に必要な'' uの数を集中して、シンボルの数と行の数を繰り返すループを関連付けると、完了です.....それがもっと気になるなら、私に知らせてください、私はロジックとコードでも説明します

于 2012-12-28T12:43:59.660 に答える
0

これにより、星が三角形で印刷されます。

`   
public class printstar{
public static void main (String args[]){
int m = 0;
for(int i=1;i<=4;i++){
for(int j=1;j<=4-i;j++){
System.out.print("");}

for (int n=0;n<=i+m;n++){
if (n%2==0){
System.out.print("*");}
else {System.out.print(" ");}
}
m = m+1;
System.out.println("");
}
}
}'

これを読んで理解すると、次回のロジックの設計に役立ちます。

于 2014-05-05T09:12:03.600 に答える
0
import java.util.Scanner;

public class A {

    public void triagle_center(int max){//max means maximum star having
        int n=max/2;
        for(int m=0;m<((2*n)-1);m++){//for upper star
            System.out.print(" ");
        }
        System.out.println("*");

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

            System.out.println();
        }


    }

    public void triagle_right(int max){
        for(int j=1;j<=max;j++){
            for(int i=1;i<=j; i++){
                System.out.print("* ");
            }

            System.out.println();
        }
    }

    public void triagle_left(int max){
        for(int j=1;j<=max;j++){
            for(int i=1;i<=max-j; i++){
                System.out.print("  ");
            }
            for(int k=1;k<=j; k++){
                System.out.print("* ");
            }

            System.out.println();
        }
    }

    public static void main(String args[]){
        A a=new A();
        Scanner input = new Scanner (System.in);
        System.out.println("Types of Triangles");
        System.out.println("\t1. Left");
        System.out.println("\t2. Right");
        System.out.println("\t3. Center");
        System.out.print("Enter a number: ");
        int menu = input.nextInt();
        Scanner input1 = new Scanner (System.in);
        System.out.print("maximum Stars in last row: ");
        int row = input1.nextInt();
        if (menu == 1)
            a.triagle_left(row);
        if (menu == 2)
            a.triagle_right(row);
        if (menu == 3)
            a.triagle_center(row);
    }
}
于 2014-07-24T12:57:35.557 に答える
0
public static void main(String[] args) {

    System.out.print("Enter the number: ");
    Scanner userInput = new Scanner(System.in);
    int myNum = userInput.nextInt();
    userInput.close();

    System.out.println("Centered Triange");
    for (int i = 1; i <= myNum; i+=1) {//This tells how many lines to print (height)

        for (int k = 0; k < (myNum-i); k+=1) {//Prints spaces before the '*'
            System.out.print(" ");
        }

        for (int j = 0; j < i; j++) { //Prints a " " followed by '*'.   
            System.out.print(" *");
        }

        System.out.println(""); //Next Line     
    }

    System.out.println("Left Triange");
    for (int i = 1; i <= myNum; i+=1) {//This tells how many lines to print (height)

        for (int j = 0; j < i; j++) { //Prints the '*' first in each line then spaces.  
            System.out.print("* ");
        }

        System.out.println(""); //Next Line         
    }

    System.out.println("Right Triange");
    for (int i = 1; i <= myNum; i+=1) {//This tells how many lines to print (height)

        for (int k = 0; k < (myNum-i); k+=1) {//Prints spaces before the '*'
            System.out.print("  ");
        }

        for (int j = 0; j < i; j+=1) { //Prints the " " first in each line then a "*".  
            System.out.print(" *");
        }

        System.out.println(""); //Next Line         
    }

}
于 2016-01-31T19:11:57.497 に答える
0

これは最も複雑でないプログラムであり、三角形を印刷するために1つのforループしか必要としません。これは中央の三角形に対してのみ機能しますが、微調整すると他の三角形に対しても機能します-

import java.io.DataInputStream;

public class Triangle {
    public static void main(String a[]) throws Exception{
        DataInputStream in = new DataInputStream(System.in);

        int n = Integer.parseInt(in.readLine());
        String b = new String(new char[n]).replaceAll("\0", " ");
        String s = "*";
        for(int i=1; i<=n; i++){
            System.out.print(b);
            System.out.println(s);
            s += "**";
            b = b.substring(0, n-i);
            System.out.println();
        }
    }
}
于 2016-02-13T04:39:40.653 に答える
0

ターゲット出力:

      *
     ***
    *****

実装:

for (int i = 5; i >= 3; i--)
    for (int a = 1; a <= i; a++)
    {   
        System.out.print(" ");
    }

    for (int j = 10; j/2>=i; j--)
    {
        System.out.print("*");
    }
    System.out.println("");
}   
于 2016-03-03T14:06:42.630 に答える
0

左揃えの直角三角形の場合、Javaでこの単純なコードを試すことができます。

import java.io.*;
import java.util.*;

public class Solution {

    public static void main(String[] args) {
      Scanner sc=new Scanner(System.in);
      int size=sc.nextInt();
       for(int i=0;i<size;i++){
           for(int k=1;k<size-i;k++){
                   System.out.print(" ");
               }
           for(int j=size;j>=size-i;j--){

               System.out.print("#");
           }
           System.out.println();
       }
    }
}
于 2016-09-17T10:27:33.510 に答える
0

以下を見つけてください、それはあなたが完全な三角形を印刷するのを助けるでしょう。

package com.raju.arrays;

パブリッククラスCompleteTriange{

public static void main(String[] args) {
    int nuberOfRows = 10;
      for(int row = 0; row<nuberOfRows;row++){

          for(int leftspace =0;leftspace<(nuberOfRows-row);leftspace++){
              System.out.print(" ");
          }
          for(int star = 0;star<2*row+1;star++){
              System.out.print("*");
          }
          for(int rightSpace =0;rightSpace<(nuberOfRows-row);rightSpace++){
              System.out.print(" ");
          }
          System.out.println("");
      }

}

}

          *          
     ***         
    *****        
   *******       
  *********      
 ***********     
*************    



于 2016-10-18T12:43:56.090 に答える
0
public class Triangle {
    public static void main ( String arg[] ) {
        System.out.print("Enter Triangle Size : ");
        int num = 0;
        try {
            num = Integer.parseInt( read.readLine() );
        } catch(Exception Number) {
            System.out.println("Invalid Number!");
        }
        for(int i=1; i<=num; i++) {
            for(int j=1; j<num-(i-1); j++) {
                System.out.print(" ");
            }
            for(int k=1; k<=i; k++) {
                System.out.print("*");
                for(int k1=1; k1<k; k1+=k) {
                    System.out.print("*");
                }
            }
            System.out.println();
        }
    }
}
于 2017-02-20T16:25:43.457 に答える
0

中央の三角形の場合

      Scanner sc = new Scanner(System.in);
      int n=sc.nextInt();
      int b=(n-1)*2;  
      for(int i=1;i<=n;i++){
      int t= i;
      for(int k=1;k<=b;k++){
      System.out.print(" ");
       }
       if(i!=1){
        t=i*2-1;
       }
       for(int j=1;j<=t;j++){
       System.out.print("*");
       if(j!=t){
       System.out.print(" ");
       }
        }
        System.out.println();
            b=b-2;  
        }

出力:

            *
          * * *
于 2017-07-09T08:05:23.967 に答える
0
    for(int i=1;i<=5;i++)
    {
        for(int j=5;j>=i;j--)
        {
            System.out.print(" ");
        }
        for(int j=1;j<=i;j++)
        {
            System.out.print("*");
        }

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

 *
***



于 2020-01-30T10:05:53.810 に答える
-1
(a)   (b)        (c)   (d)
* ********** ********** *
** ********* ********* **
*** ******** ******** ***
**** ******* ******* ****
***** ****** ****** *****
****** ***** ***** ******
******* **** **** *******
******** *** *** ********
********* ** ** *********
********** * * **********

int line;
int star;
System.out.println("Triangle a");
        for( line = 1; line <= 10; line++ )
        {
            for( star = 1; star <= line; star++ )
            {

                System.out.print( "*" );
            }
            System.out.println();
        }

 System.out.println("Triangle b");

          for( line = 1; line <= 10; line++ )
        {
            for( star = 1; star <= 10; star++ )
            {

        if(line<star)
                System.out.print( "*" );
                else
                  System.out.print(" ");
            }
            System.out.println();
        }

 System.out.println("Triangle c");

          for( line = 1; line <= 10; line++ )
        {
            for( star = 1; star <= 10; star++ )
            {

        if(line<=star)
                System.out.print( "*" );
                //else
                 // System.out.print(" ");
            }
            System.out.println();
        }

 System.out.println("Triangle d");

          for( line = 1; line <= 10; line++ )
        {
            for( star = 1; star <= 10; star++ )
            {

        if(line>10-star)
                System.out.print( "*" );
                else
                  System.out.print(" ");
            }
            System.out.println();
        }
于 2014-01-24T07:21:52.217 に答える
-1

あなたもこれに興味があるかもしれません

      Scanner sc = new Scanner(System.in);
      int n=sc.nextInt();
      int b=0;
      for(int i=n;i>=1;i--){
      if(i!=n){
      for(int k=1;k<=b;k++){
      System.out.print(" ");
        }
            }
       for(int j=i;j>=1;j--){
       System.out.print("*");
       if(i!=1){
       System.out.print(" ");
        }
            }
       System.out.println();
       b=b+2;
        }

出力::5

       * * * * * 
         * * * * 
           * * * 
             * * 
               *
于 2017-07-09T06:20:14.110 に答える