Diamond display with Nested Loops - java

I've learned a lot here, but there is a question I have that I can't sem to find.
Our last assignment, requires us to use nested For Loops in Java to display a diamond.
The Program must use a symbol entered by the user and draw the following:
%
% %
% % %
% % % %
% % % % %
% % % %
% % %
% %
%
So far, i pseudo coded one half triangle, and then I was going to code the inverse of the triangle to complete the opposite side, but I can not get any other than this without increasing the amount of symbols required:
*
**
***
****
*****
This is the code:
String symbol1; //User input, symbol to utilize
Scanner Keyboard = new Scanner (System.in);
System.out.println("Enter the Symbol you wish to use: ");
symbol1 = Keyboard.next();
for (int i=0 ; i<5 ; i++)
{
for (int k=5 ; k > i; k--)
{
System.out.print(" ");
}
for (int j=0; j<=i; j++)
{
System.out.print(symbol1);
}
System.out.println();
}
}
}
Any input is greatly appreciated!
*EDIT*
I wanted to post my end code.
It may be simple, but I feel accomplished.
Hopefully it will help someone at some point like I was helped here!
Cheers everyone.
import java.util.Scanner;
public class AlvaradoPgm04Bonus {
public static void main(String[] args) {
//Draw a diamond using symbol entered by user
String symbol1; //User input, symbol to utilize
Scanner Keyboard = new Scanner (System.in); //New scanner
System.out.println("Enter the Symbol you wish to use: "); //Prompt user symbol input
symbol1 = Keyboard.next(); // Capture user input
for (int i=0 ; i<5 ; i++){ //Begin for loop - increase until int is 5 long
for (int k=8 ; k > i ; k--){ //nested loop - decrease space before int "i" (inverted invisible triangle)
System.out.print(" "); //print space from nested loop before symbol1
}
for (int j=0; j<=i; j++){ //nested loop - increase "j" until is equal to "i"
System.out.print(symbol1 + " "); //print symbol1 + space to form diamond
}
System.out.println(); //print above nested loop line by line
} //begin new loop - inverted triangle
for (int m = 4 ; m > 0 ; m--){ //decrease symbol by 1
for (int n = 8 ; n >= m ; n--){ //match increase of space "invisible" triangle next to symbol to form upside down triangle
System.out.print(" "); //print "invisible" triangle
}
for (int q = 0 ; q < m ; q++){ //nested loop to decrease symbol entered by user
System.out.print(symbol1 + " "); //print inverted triangle made of user's input
}
System.out.println(); //print the loop in new line.
} //end loop
}//end main
} //end class

You might want to notice that in the expected output there are spaces after each symbol, since you know how to print a space and I would assume you know where you're printing your symbol it should be easy for you to add the printing of a space after a symbol.
Then you've got the half of the diamond, the bottom half is exactly the same In the opposIte dIrectIon If you get my hInt.

package moreloops;
import java.util.Scanner;
public class Diamond {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int input=in.nextInt();
int spac=input-1;
int min=1;
int max=input;
for(int i=0;i<input;i++){
for(int k=spac ; k>i;k--){
System.out.print(" ");
}
for(int j=0;j<min;j++){
System.out.print("*");
}
min+=2;
System.out.println();
}
for(int m=input-1;m>0;m--){
for(int n=spac;n>=m;n--){
System.out.print(" ");
}
for(int q=0;q<m;q++){
System.out.print("*");
}
System.out.println();
}
}
}
my output lol
5
*
**
*

package moreloops;
import java.util.Scanner;
public class Diamond {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int input=in.nextInt();
int spac=input-1;
int min=1;
int max=input;
for(int i=0;i<input;i++){
for(int k=spac ; k>i;k--){
System.out.print(" ");
}
for(int j=0;j<min;j++){
System.out.print("*");
}
min+=2;
System.out.println();
}
for(int m=input-1;m>0;m--){
for(int n=spac;n>=m;n--){
System.out.print(" ");
}
for(int q=0;q<m;q++){
System.out.print("*");
}
for(int s=0;s<m-1;s++){
System.out.print("*");
}
System.out.println();
}
}
}
That will help

Related

create a program that prompts the user to enter a number between 1 and 15 and print the sum as shown: 1=1, 1+2=3, 1+2+3=6, 1+2+3+4=10

I seriously need help please
1=1, 1+2=3, 1+2+3=6, 1+2+3+4=10
I don't know how to code the equation part
import java.util.Scanner;
public class Equations {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println ("Enter a number between 1 to 15: ");
int num = scan.nextInt();
int total = 0;
int save;
for(int i=1;i<=num;i++)
{
for(int j=1;j<=num;j++)
{
save = total+i;
i++;
}
System.out.print (save+"="+total);
System.out.println ();
}
}
This is all I have, and it doesn't work.
There are quite a few things off. You're not resetting total or save after each equation. save is an int, so it can't hold the equation string. j needs to increment to i, not num. total is never incremented. i++ doesn't belong in the inner loop.
Here's a simple, correct version:
for (int i = 1; i <= num; i++) {
int sum = 0;
String equation = "";
for (int j = 1; j <= i; j++) {
sum += j;
equation += "+" + j;
}
System.out.println(equation.substring(1) + "=" + sum);
}

Print rows of triangle if a user specifies (more than 0)

I want the code to do this:
If I enter '5' it would print 5 triangle rows like this:
+
++
+++
++++
+++++
I also want to inverse it afterwards so that it looks like so:
+++++
++++
+++
++
+
This is my attempt:
package test;
import java.util.Scanner;
public class Testo1
{
public static void main(String[] args)
{
//
Scanner input = new Scanner(System.in);
int Rows = 0;
//
while(Rows<=0){
System.out.print("How many rows do you want in your triangle, more than 0?: ");
Rows = input.nextInt();
}while(Rows>=0){
//Honestly, I don't know what to do here or the logic to implement.
}
}
}
I commented the part in the while loop where I got lost. I want this in a while-loop nest. Can someone please guide me?
Yes, you have to do it with nested-loops.
Take a look at this code:
Scanner input = new Scanner(System.in);
int Rows = 0;
while (Rows <= 0) { // Keep asking the user if they enter something less than zero
System.out.print("How many rows do you want in your triangle, more than 0?: ");
Rows = input.nextInt();
}
// If you got out of the while loop, that means you got a positive row number
for (int i = 1; i <= Rows; i++) { // number of lines
for (int j = 1; j <= i; j++) // number of stars at each line
System.out.print("*"); // printing stars
System.out.print("\n"); // line break
}
For the inverse, you just change the loops to:
for (int i = Rows; i >= 1; i--) {
for (int j = i; j >= 1; j--)
System.out.print("*");
System.out.print("\n");
}
You can achieve any pattern just with the help of looping and by focusing
that how they actually work and print. Giving an example of a normal triangle printing:-
Scanner scn=new Scanner(System.in);
int n=scn.nextInt();
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if((i+j)>n)
{
System.out.print("#");
}
else
{
System.out.print(" ");
}
}
System.out.println();
}
The output would be:-
#
##
###
####
#####
Same way, you can make changes and produce different output. For example, change # with empty string, and you'll get the reversing order.
#####
####
###
##
#
Another pattern you can make is:-
Scanner scn=new Scanner(System.in);
int n=scn.nextInt();
for(int i = 0; i < n; i++){
for(int j=i+1;j>0;j--){
System.out.print("*");
}
System.out.println();
}
This will output as:-
*
**
***
****
*****
I hope this helps.

Printing rhomboid using scanner in eclipse

Enter edge length of your rhomboid: 5
Here is your rhomboid:
*****
*****
*****
*****
*****
I need to print that rhomboid with scanner. I get like: * * * * * *
My code was like that normally I'm not that bad but i couldn't even do the first line:
import java.util.Scanner;
public class rhomboid {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Enter edge lenght of your rhomboid: ");
int edgelenght = scan.nextInt();
System.out.println("Here is your rhomboid:");
while(edgelenght > 0){
System.out.print(" ");
System.out.print("*");
edgelenght--;
So your code will just print 1D output..
Output:- *****
So, to solve this you need two loops one for row and column.Now a little modification in 2D printing for rhombus is, first now there must be gap of 4 spaces before printing,it can be achieved by using one more variable k as shown below.
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Enter edge lenght of your rhomboid: ");
int edgelenght = scan.nextInt();
int k = edgelenght - 1;
for (int i = 0; i < edgelenght; i++) {
for (int j = 0; j < k + edgelenght; j++) {
if (j < k) {
System.out.print(" ");
} else {
System.out.print("*");
}
}
k--;
System.out.println();
}
}
What you get is what you wrote in your code.
while(edgelenght > 0){
System.out.print(" ");
System.out.print("*");
edgelenght--;
}
will print edgelenght times a space " " and after that a "*".
What you want is something like this:
for(int line = 0; line < edgeLength; line++){
// in line 0 print 4 spaces (5-1), in line 3 print 1 (5-1-3), in line 4 (the last one) print 0
for(int space = 0; space < edgeLength - line - 1; space++){
System.out.print(" ");
}
for(int asterix = 0; asterix < edgeLength; asterix++){
System.out.print("*");
}
// print a newline
System.out.println("");
}
You need to first loop over the lines.
For every line you need a loop to print spaces. And one to print *.

Inputting integers in to an array Error?

The purpose of my code is to display the student number and their respective grade as follows:
Student Grade
1 53
2 45
So on...
I used a 5x2 array, in which the user can input the values for the grade...
However I run in to a problem, when inputting the grades, for some reason I have to input 3 values, out of all the 3 inputted values only the 3rd is considered.
My problems:
(1) Why is it that I am even able to enter 3 values per student (Should only be able to input 1 value per student).
(2) Why is it the 3rd value that is being considered?
Here is my code:
import java.util.*;
public class practice {
public static void main(String[] args) {
int[][] studentGrade = new int[5][2];
for(int i = 0; i<5; i++) {
studentGrade[i][0] = i+1;
}
for(int j = 0; j<5; j++) {
System.out.printf("Student %s: ", j+1);
Scanner input = new Scanner(System.in);
if(input.nextInt()>=0 && input.nextInt()<=100) {
studentGrade[j][1] = input.nextInt();
}
else {
studentGrade[j][1] = 0;
System.out.printf("Student %s's mark has been defaulted", j);
}
}
System.out.print("\nStudent \t Grade");
for(int s=0; s<5; s++) {
System.out.print("\n" + studentGrade[s][0] +"\t" + "\t " + studentGrade[s][1]);
}
}
}
input.nextInt() consumes the next integer in the stream.
You need to do this:
Scanner input = new Scanner (System.in);
for (int j = 0; j < 5; j++) {
System.out.printf("Student %s: ", j+1);
int num = input.nextInt();
if (num >= 0 && num <= 100)
studentGrade[j][1] = num;
else {
studentGrade[j][1] = 0;
System.out.printf("Student %s's mark has been defaulted", j+1);
}
}
This will make it so that you read the number being input only once, and then you use that number when checking boundaries and then setting the grade.

Printing *s as triangles in Java?

My assignment in my Java course is to make 3 triangles. One left aligned, one right aligned, and one centered. I have to make a menu for what type of triangle and then input how many rows is wanted. The triangles have to look like this
*
**
***
****
*
**
***
****
*
***
*****
So far I was able to do the left aligned triangle but I can't seem to get the other two. I tried googling but nothing turned up. Can anyone help? I have this so far.
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();
}
}
Sample Output:
Types of Triangles
1. Left
2. Right
3. Center
Enter a number (1-3): 3
How many rows?: 6
*
***
*****
*******
*********
***********
Hint: For each row, you need to first print some spaces and then print some stars.
The number of spaces should decrease by one per row, while the number of stars should increase.
For the centered output, increase the number of stars by two for each row.
Ilmari Karonen has good advice, and I'd just like to generalize it a bit. In general, before you ask "how can I get a computer to do this?" ask "how would I do this?"
So, if someone gave you an empty Word document and asked you to create the triangles, how would you go about doing it? Whatever solution you come up with, it's usually not hard to translate it to Java (or any other programming language). It might not be the best solution, but (hopefully!) it'll work, and it may point you to a better solution.
So for instance, maybe you would say that you'd type out the base, then go up a line, then type the next highest line, etc. That suggests that you can do the same in Java -- create a list of Strings, base-to-top, and then reverse them. That might suggest that you can just create them in reverse order, and then not have to reverse them. And then that might suggest that you don't need the list anymore, since you'll just be creating and printing them out in the same order -- at which point you've come up with essentially Ilmari Karonen's advice.
Or, maybe you'd come up with another way of doing it -- maybe you'd come up with Ilmari Karonen's idea more directly. Regardless, it should help you solve this and many other problems.
Left alinged triangle-
*
**
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();}
}
Right alinged triangle-
*
**
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();
}
}
Center Triangle-
*
* *
from above pattern we come to know that-
1)we need to print pattern containing n rows (for above pattern n is 4).
2)Intially in each row we need to print spaces followed by a star & then again a space . NO of spaces in each row at start 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 center Triangle-
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()
{
/// 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();}
}
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();
}
}
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();
}
}
}
This is for normal triangle:
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");
}
Output:
*
* *
* * *
* * * *
* * * * *
This is for left triangle, just removed space before printing *:
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");
}
Output:
*
**
***
****
*****
1) Normal triangle
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) right angle triangle
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) Left angle triangle
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");
}
}
}
I know this is pretty late but I want to share my solution.
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();
}
}
The spaces on the left of the triangle will automatically adjust itself depending on what character or what word you want to print.
if whatToPrint = "x" and floors = 3 it will print
x
xxx
xxxxx
If there's no automatic adjustment of the spaces, it will look like this (whatToPrint = "xxx" same floor count)
xxx
xxxxxxxxx
xxxxxxxxxxxxxxx
So I made add a simple code so that it will not happen.
For left half triangle, just change strLen * floors to strLen * (floors * 2) and the f +=2 to f++.
For right half triangle, just remove this loop for (int k = 1; k < h; k++) or change h to 0, if you choose to remove it, don't delete the System.out.print(" ");.
For the right triangle, for each row :
First: You need to print spaces from 0 to rowNumber - 1 - i.
Second: You need to print \* from rowNumber - 1 - i to rowNumber.
Note: i is the row index from 0 to rowNumber and rowNumber is number of rows.
For the centre triangle: it looks like "right triangle" plus adding \* according to the row index (for ex : in first row you will add nothing because the index is 0 , in the second row you will add one ' * ', and so on).
well for the triangle , you need to have three loops in place of two ,
one outer loop to iterate the no of line
two parallel loops inside the main loop
first loop prints decreasing no of loops
second loop prints increasing no of ''
well i could give the exact logic as well , but its better if you try first
just concentrate how many spaces and how many '' u need in every line
relate the no of symbols with loop iterating no of lines
and you're done
..... if it bothers more , let me know , i'll explain with logic and code as well
This will print stars in triangle:
`
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("");
}
}
}'
Reading and understanding this should help you with designing the logic next time..
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);
}
}
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
}
}
This is the least complex program, which takes only 1 for loop to print the triangle. This works only for the center triangle, but small tweaking would make it work for other's as well -
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();
}
}
}
For left aligned right angle triangle you could try out this simple code in 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();
}
}
}
Find the following , it will help you to print the complete triangle.
package com.raju.arrays;
public class 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("");
}
}
}
*
***
*****
*******
*********
***********
*************
For center triangle
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;
}
output:
*
* * *
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("");
}
*
***
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();
}
}
}
Target output:
*
***
*****
Implementation:
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("");
}
(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();
}
You might be interested in this too
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;
}
Output:: 5
* * * * *
* * * *
* * *
* *
*

Categories