- #1
MarcL
- 170
- 2
Hey so I have to make a pattern in the shape of a diamond as follow:
So first, I wrote the code without using a variable n as the number of rows ( from an input from the user) but just the constant i = 5 ( I am sorry for the variable names, I made many patterns and this was just trying to get it to work so I didn't mind it as I was going to change everything later)
Then, as this gave the output that I first did up there, I tried to do it with a value inputted by a user:
But, I'm having an issue while trying to use a value from an input. This is because in my first code, I used the space to the left of the numbers to tell when the program to break to then form a lower triangle. However, I do notice a pattern with the space vs. the number of rows but it doesn't seem like I'd be able to code it as the values always change. ( I don't think I'm making very much sense??)
Any pointers of what I should do?
Code:
1
123
12345
123
1
So first, I wrote the code without using a variable n as the number of rows ( from an input from the user) but just the constant i = 5 ( I am sorry for the variable names, I made many patterns and this was just trying to get it to work so I didn't mind it as I was going to change everything later)
Code:
public class PatternChose {
public static void main(String[] args) {
// TODO Auto-generated method stub
int k = 0, h=2, c=0;
for (int i=1 ; i<=5 ; i++)
{
{ for (int u=2 ; u >= i ; u--)
System.out.print(" ");
h--;
for (int j=1 ; j<= i + k ; j++)
System.out.print(j);
for (int w=2 ; w>= i; w--)
System.out.print(" ");
}
k++;
System.out.println();
if (h<0)
break;}
for (int i =2 ; i>=1 ; i--){
{ for (int l=3 ; l>+i ; l--)
System.out.print(" ");
for (int m= 0 ; m <=i - c ; m++)
System.out.print( m + 1);
}
c++;
System.out.println();
}
}
}
Then, as this gave the output that I first did up there, I tried to do it with a value inputted by a user:
Code:
import java.util.Scanner;public class PatternChose {
public static void main(String[] args) {
// TODO Auto-generated method stub
int k = 0, h=2, c=0, row=1;
Scanner userInput = new Scanner(System.in);
System.out.println("Please input your value");
int newUserInput = userInput.nextInt();
for (int i=1 ; i<=newUserInput ; i++)
{
{ for (int u=newUserInput - row ; u >= i ; u--)
System.out.print(" ");
h--;
for (int j=1 ; j<= i + k ; j++)
System.out.print(j);
for (int w=2 ; w>= i; w--)
System.out.print(" ");
}
k++;
System.out.println();
if (h<0)
break;}
for (int i =2 ; i>=1 ; i--){
{ for (int l=3 ; l>+i ; l--)
System.out.print(" ");
for (int m= 0 ; m <=i - c ; m++)
System.out.print( m + 1);
}
c++;
row++;
System.out.println();
}
}
}
Any pointers of what I should do?