Pyramid of asterisk - java

I am trying to write code using a for loop to print a pyramid of asterisks. The height of the pyramid should be determined by the user input and should look like:
ex: input of 3
*
**
***
**
*
import java.util.Scanner;
public class Homework6_Project2 {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
int triangleHeight = keyboard.nextInt();
int i;
int j;
for (i = triangleHeight; i >= 1; i--) {
for (j = i; j >= 1; j--) {
System.out.print("*");
}
System.out.println();
}
}
}
edit: I was forgetting the code for the bottom half where I needed to use the ++ increment operator.

You need another looping to print the upper pyramids.
Something like:
for(i = 1; i < triangleHeight; i++) {
for (j = 1; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
You can check this code which gave me the following output for input 3:
*
**
***
**
*

public class PyramidOfAsterisk {
/**
* #param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
java.util.Scanner keyboard = new java.util.Scanner(System.in);
int pyramidHeight = keyboard.nextInt();
for(int i = 1; i <= pyramidHeight; i++){
for(int j=1; j <= i; j++){
System.out.print('*');
}
System.out.println();
}
for(int i = pyramidHeight - 1; i > 0; i--){
for(int j=i; j > 0; j--){
System.out.print('*');
}
System.out.println();
}
}

Related

180 degree rotated half pyramid(pattern question in JAVA)

I am actually trying to print this pattern: https://imgur.com/a/ObixO5I
import java.util.*;
public class ques5 {
public static void main(String[] args) {
try (Scanner sc = new Scanner(System.in)) {
int n = 4;
// outer loop
for (int i = 1; i <= n; i++) {
// inner loop
for (int j = 1; j <= n - i; j++) {
System.out.print(" ");
}
for (int k = 1; k <= i; k++) {
System.out.print("*");
}
}
}
}
}
Output I am getting is : * ** *******
Add System.out.println() at end of second inner loop.
Try this
import java.util.*;
public class ques5 {
public static void main(String[] args) {
try (Scanner sc = new Scanner(System.in)) {
int n = 4,m=1;
// outer loop
for (int i = n; i >=1; i--) {
// inner loop
for (int j = 1; j <= i - 1; j++) {
System.out.print(" ");
}
for (int k = 1; k <= m; k++) {
System.out.print("*");
}
System.out.print("\n");
m++;
}
}
}
}

Create a Star Pattern in Java.

I am working on a simple star pattern program in Java. I have the code running but it is not doing what it's supposed to. My code is:
public class q3 {
public static void main(String[] args) {
for (int i = 10; i >= 1; i--){
for (int j = i; j >= 1; j--){
System.out.print("*");
}
System.out.println("");
}
}
}
Output:
$$$$$$$$$$
$$$$$$$$$
$$$$$$$$
$$$$$$$
$$$$$$
$$$$$
$$$$
$$$
$$
$
What I want is something like this below:
$
$$
$$$
$$$$
$$$$$
..........
$$$$$$$$$$
Can someone please help me figure out how I would get the above pattern. Thank You.
Try this :
public static void main(String[] args) {
final int length = 10;
for (int i = 1; i < length; i++) {
//Print spaces first
for (int j = length - 1; j > i; j--) {
System.out.print(" ");
}
//Then print "*"
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
}
Output is for length = 10 :
*
**
***
****
*****
******
*******
********
We can achieve this pattern using a single for loop:
char [] mirrorascval = new char[5];
for (int i = 4; i >= 0; i--) {
mirrorascval[i] ='*';
System.out.println(mirrorascval);
}
class StarTriangle {
public static void main(String[] args) {
int i, j, k;
for (i = 8; i >= 1; i--) {
for (j = 1; j < i; j++) {
System.out.print(" ");
}
for (k = 8; k >= i; k--) {
System.out.print("*");
}
System.out.println();
}
}
}
public void starPrint(){
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5 - i; j++) {
System.out.print(" ");
}
for (int k = 0; k <= i; k++) {
System.out.print("*");
}
System.out.println();
}
}
import java.util.*;
public class firstStar {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner S=new Scanner(System.in);
int n=S.nextInt();
int i=1;
while(i<=n) {
int j=1;
while(j<=i) {
System.out.print("*");
j=j+1;
}
System.out.println();
i=i+1;
}
}
}
package star.pattern;
import java.util.Scanner;
public class StarPattern {
public static void main(String[] args) {
Scanner scn=new Scanner(System.in);
int l;
System.out.print("Enter No Of Line You Want:- ");
l=scn.nextInt();
int x=1;
while(x<=l){
int j=x;
while(j<l){
System.out.print(" ");
j++;
}
int y=1;
while(y<=x){
System.out.print("*");
y++;
}
System.out.println("");
x++;
}
}
}
public class q3 {
public static void main(String[] args) {
for (int i = 1; i <=10; i++){
for (int j = 10; j >= i; j--){
System.out.print("*");
}
System.out.println("");
}
}
}
Try this...
int i, j, k=8;
for(i=0; i<5; i++)
{
for(j=0; j<k; j++)
{
System.out.print(" ");
}
k = k - 2;
for(j=0; j<=i; j++)
{
System.out.print("* ");
}
System.out.println();
}

Java Pattern Program Error

I want to make a program which gives this output:
*
**
***
****
***
**
*
where the maximum number of stars is 'n'. however, something is wrong with my code here. help will be appreciated.
class test
{
public static void main(int n)
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=i;j++)
{
System.out.print("*");
}
for(int x=n;x>=1;x--)
{
System.out.print("*");
}
System.out.println();
}
}
}
You're almost there - think of it as an upright triangle followed by an upside down triangle. In the first one, there are N rows, each row having an increasing number of asterisks, from one up to N. In the second one, each row has a decreasing number of asterisks, from N-1 down to 1:
for (int i = 1; i <= n; ++i) {
for (int j = 0; j < i; ++j) {
System.out.print('*');
}
System.out.println();
}
for (int i = n - 1; i >= 1; --i) {
for (int j = 0; j < i; ++j) {
System.out.print('*');
}
System.out.println();
}
This could, of course, be made much more elegant by extracting the inner for loop which creates each row to its own method:
private static void printRow (int i) {
for (int j = 0; j < i; ++j) {
System.out.print('*');
}
System.out.println();
}
private static void main (String[] args) {
for (int i = 1; i <= n; ++i) {
printRow(i);
}
for (int i = n - 1; i >= 1; --i) {
printRow(i);
}
}

Creating a Christmas Tree using for loops

I am trying to make a christmas tree using for loops and nested for loops. For me to do that I need to be able to make a pyramids with *. I have tried countless times and I am having problems making one. Here is my code:
for(int i=1;i<=10;i++){
for(int j=10;j>i;j--){
System.out.println(" ");
}
for(int k=1;k<=i;k++){
System.out.print("*");
}
for(int l=10;l<=1;l++){
for(int h=1;h<=10;h++){
System.out.print(" ");
}
}
System.out.println();
}
What I am trying to do is:
*
***
*****
*******
Try this much simpler code:
public class ChristmasTree {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10 - i; j++)
System.out.print(" ");
for (int k = 0; k < (2 * i + 1); k++)
System.out.print("*");
System.out.println();
}
}
}
It uses 3 loops:
first one for the number of rows,
second one for printing the spaces,
third one for printing the asterisks.
You can do it with simple logic
for (int i = 0; i < 4; i++)
System.out.println(" *******".substring(i, 4 + 2*i));
import java.util.Scanner;
public class cmastree{
public static void main (String[]args){
Scanner keyboard=new Scanner (System.in);
int j;
System.out.println ("Enter a number");
j=keyboard.nextInt();
/*take the above part out and change the j variable if you want to set
the size*/
for(int i=1; i<=j; i+=2){
int numSpaces = (j-i)/2;
for (int k=0; k<numSpaces; k++){
System.out.print(" ");
}
for(int k=0; k<numSpaces; k++){
System.out.print("*");
}
System.out.println();
}
}
}
public class ChrismasTree {
public static void main(String[] args) {
int sizeOfTree = 9;
double remainderVal = sizeOfTree % 2 ;
double ans = sizeOfTree / 2 ;
if (remainderVal == 0) {
System.out.println("Invalid number enter 9,19 calculat rest yourself u looser ..");
System.exit(0);
}
int middlePos = (int) Math.round(ans + .5);
for (int i = 0; i <= sizeOfTree; i++) {
int lStar = middlePos - i;
int rStar = middlePos + i;
if (lStar < 1) {
break;
}
printleaves(lStar, rStar, sizeOfTree);
}
}
public static void printleaves(int a,int b, int size){
System.out.println();
for (int i = 1; i <= size; i++) {
if (i > a && i < b ){
System.out.print("*");
}else System.out.print(" ");
}
}
}
public class Stars {
/**
* #param args the command line arguments
*/
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
System.out.println("Enter Row/Column Value::");
int i,j,k,n;
n=s.nextInt();
for(i=1; i<n; i++){
for(j=n+(n/2); j>i; j--){
System.out.print(" ");}
for(k=1; k<=2*i-1; k++){
System.out.print("*");}
System.out.println("");
}
for(i=1; i<n+(n/2); i++){
for(j=n+(n/2); j>i; j--){
System.out.print(" ");}
for(k=1; k<=2*i-1; k++){
System.out.print("*");}
System.out.println("");
}
for(i=1; i<n-(n/2); i++){
for(j=n+(n/2); j>1; j--){
System.out.print(" ");}
for(k=n/2; k<=(n/2)+1; k++){
System.out.print("*");}
System.out.println("");
}
}
}
public class ChristmasTree {
public static void printStars(int number) {
for (int i = 1; i <= number; i++) {
System.out.print("*");
}
System.out.println("");
}
public static void printSpaces(int number) {
for (int i = 0; i < number; i++) {
System.out.print(" ");
}
}
public static void christmasTree(int height) {
for (int i = 1; i <= height; i++) {
printSpaces(height - i);
printStars(i + (i - 1));
}
}
public static void main(String[] args) {
// int x = pick some number, but not TOO big )))
christmasTree(x);
}
}
def fist(n)
k=2*n-2
for i in range(0,n):
for j in range(0,k):
k=k-1
print(end=" ')
for j in range(0,i+1):
print("*",end=" ")
print()
def second(n)
k=2*n-2
for i in range(0,n):
for j in range(0,k):
k=k-1
print(end=" ')
for j in range(0,i+1):
print("*",end=" ")
print()
def stem(m)
k=11
for i in range(0,5):
for j in range(0,k):
print(end=" ")
for j in range(0,3):
print("*",end=" ")
print()
first(7)
second(7)
steam(3)

Make triangle pattern in java

I am trying to make this pattern in java:
*
* * *
* * * * *
* * *
*
Here is what I have right now:
public static void main(String[] args) {
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
if(i<j){
System.out.print(" ");
} else {
System.out.print("*");
}
}
System.out.println();
}
}
Any help would be appreciated....
public static void main(String[] args) {
int size = 5;
for (int i = 0; i < size; i++) {
int width = Math.min(i, size - 1 - i) * 2 + 1;
for (int j = 0; j < width; j++) {
System.out.print("*");
}
System.out.println();
}
}
public static void main(String[] args) {
for(int i=0;i<5;i++){
int n = 1 + 2 * (2 - Math.abs(2 - i));
for (int j = 0; j < n; j++)
System.out.print("* ");
System.out.println();
}
}
You have done very well so far.
Now all you have to do is calculate the number of "needed" spaces to put in front of each string. After adding them, you will have the "full" solution.
It may work in this way also.
Scanner sc = new Scanner(System.in);
int n=sc.nextInt();
int b=0;
for(int i=1;i<=n;i++){
for(int j=1;j<=i;j++){
System.out.print("*");
if(j!=i){
System.out.print(" ");
}
}
System.out.println();
}
for(int i=n-1;i>=1;i--){
for(int j=1;j<=i;j++){
System.out.print("*");
if(j!=i){
System.out.print(" ");
}
}
System.out.println();
}

Categories