Печать * s как треугольники в Java?

Мое задание в моем курсе Java состоит в том, чтобы сделать 3 треугольника. Один левый выровненный, один выровненный по правому краю и один центрированный. Я должен создать меню для какого типа треугольника, а затем ввести количество строк. Треугольники должны выглядеть так:

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

До сих пор мне удалось сделать левый выровненный треугольник, но я не могу представить двух других. Я попробовал погулять, но ничего не получилось. Может ли кто-нибудь помочь? У меня это до сих пор.

 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 = 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 * *** ***** ******* ********* *********** 

Подсказка: для каждой строки вам нужно сначала напечатать несколько пробелов, а затем напечатать несколько звезд. Количество пробелов должно уменьшаться на единицу в строке, а количество звезд должно увеличиваться.

Для центрированного выхода увеличьте количество звезд на два для каждой строки.

У Илмари Каронен есть хороший совет, и я просто хотел бы его обобщить. В общем, прежде чем вы спросите: «Как я могу получить компьютер для этого?» спросите: «Как бы я это сделал?»

Итак, если кто-то дал вам пустой документ Word и попросил вас создать треугольники, как бы вы это сделали? Независимо от того, какое решение вы придумали, обычно нетрудно перевести его на Java (или на любой другой язык программирования). Это может быть не лучшее решение, но (надеюсь)! Это сработает, и это может указывать на лучшее решение.

Так, например, может быть, вы скажете, что вы наберете базу, затем перейдите по строке, затем введите следующую самую высокую строку и т. Д. Это говорит о том, что вы можете сделать то же самое в Java – создайте список строк, от основания к вершине, а затем отмените их. Это может означать, что вы можете просто создать их в обратном порядке, а затем не нужно их отменять. И тогда это может означать, что вам больше не нужен этот список, поскольку вы просто создадите и распечатаете их в том же порядке – в этот момент вы придумали совет Илмари Каронена.

Или, может быть, вы придумали другой способ сделать это – может быть, вы придумали идею Ильмари Каронена более прямо. Независимо, это должно помочь вам решить эту и многие другие проблемы.

 package apple; public class Triangle { private static final int row = 3; public static void main(String...strings){ printLeftTrangle(); System.out.println(); printRightTrangle(); System.out.println(); printTrangle(); } /* Pattern will be * ** *** **** */ public static void printLeftTrangle(){ 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 printRightTrangle(){ 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 printTrangle(){ 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(); } } } 

Левый треугольник – * **



 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. Таким образом, для правильного треугольника с треугольником нам нужно использовать 3 для цикла. 1-й «цикл» для печати n строк. 2-й "цикл для печатных пространств. 3-й« для цикла »для печати звезд.

Код для центра Треугольник-

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

CODE FOR PRINTING ALL 3 PATTERNS - public class space4 {public static void leftTriangle () {/// здесь нет строк для 4 для (int a = 1; a <= 4; a ++) // для цикла для строки {
for (int b = 1; b <= a; b ++) для цикла для столбца {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(); } } 

Для правильного треугольника для каждой строки:

  • Во-первых: вам нужно печатать пробелы от 0 до rowNumber - 1 - i .
  • Второе: вам нужно напечатать \* от rowNumber - 1 - i до rowNumber .

Примечание: i – это индекс строки от 0 до rowNumber а rowNumber – количество строк.

Для центрального треугольника: он выглядит как «правый треугольник» плюс добавление \* соответствии с индексом строки (например: в первой строке вы ничего не добавите, потому что индекс равен 0, во второй строке вы добавите один «*», и так далее).

// Это для нормального треугольника

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

1) Обычный треугольник

 package test1; class Test1 { public static void main(String args[]) { int n=5; for(int i=0;i 

2) прямоугольный треугольник

 package test1; class Test1 { public static void main(String args[]) { int n=5; for(int i=0;i 

3) Треугольник левого угла

 package test1; class Test1 { public static void main(String args[]) { int n=5; for(int i=0;i 

Я знаю, что это довольно поздно, но я хочу поделиться своим решением.

 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 на strLen * (floors * 2) и f +=2 на f++ .

Для правой половины треугольника просто удалите этот цикл for (int k = 1; k < h; k++) или измените h на 0 , если вы решите его удалить, не удаляйте System.out.print(" "); ,

хорошо для треугольника, вам нужно иметь три петли вместо двух, один внешний цикл для итерации ни одного из двух параллельных циклов внутри основного цикла. Первый цикл печатает, уменьшая количество циклов шлейфов второго цикла, увеличивая число «хорошо» дайте точную логику, но лучше, если вы попробуете сначала просто сконцентрироваться на том, сколько пробелов и сколько «нужно в каждой строке связывать без символов с циклом, итерации нет строк, и вы закончили ….. если это беспокоит больше, дайте мне знать, я объясню также логикой и кодом

Это будет печатать звезды в треугольнике:

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

Чтение и понимание этого должно помочь вам при разработке логики в следующий раз.

 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<=nj; 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); } } 
 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 } } 

Это наименее сложная программа, которая занимает всего 1 для цикла для печати треугольника. Это работает только для центрального треугольника, но небольшая настройка заставит его работать и на других,

 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, ni); System.out.println(); } } } 

Вопрос:

  * *** ***** 

Ответ:

  int i,a,j; i=5; while (i>=3) { a=1; while (a<=i) { System.out.print(" "); a++; } j=10; while (j/2>=i) { System.out.print("*"); --j; } System.out.println(""); i--; } 

Наслаждаться!!

Для левого выровненного прямоугольного треугольника вы можете попробовать этот простой код в 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;j--){ System.out.print("#"); } System.out.println(); } } } 

Найдите следующее, это поможет вам распечатать полный треугольник.

 package com.raju.arrays; 

открытый class CompleteTriange {

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

}

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



 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 

Возможно, вас это тоже заинтересует

  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

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

Для центрального треугольника

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

вывод:

  * * * * 
 (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(line10-star) System.out.print( "*" ); else System.out.print(" "); } System.out.println(); } 
  • Почему я должен использовать foreach вместо for (int i = 0; i <length; i ++) в циклах?
  • Почему объекты R не печатаются в функции или в цикле «для»?
  • Каков наилучший способ перебора словаря?
  • Есть ли необходимость в цикле «do {...} while ()»?
  • езда на велосипеде по списку цветов с сассисом
  • Как выйти из цикла while в java со сканирующим методом «hasNext» как условие?
  • Однострочный цикл с обязательной парой фигурных скобок в Java
  • Отображать номера от 1 до 100 без петель или условий
  • Пазл, связанный с вложенными циклами
  • Зацикливание через t.tests для подмножеств фрейма данных в r
  • Как сгенерировать разные случайные числа в цикле в C ++?
  • Давайте будем гением компьютера.