How to make a trust for the last christmas tree? - java

public class Xmas{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("program.");
System.out.print("Height: ");
int n = sc.nextInt();
if (n <= 0) {
System.out.println("Height can only be positive.");
}
else {
System.out.print("Levels: ");
int sz = sc.nextInt();
if (sz <= 0) {
System.out.println("Levels can only be positive.");
}
else
for (int s = 0; s < sz; s++) {
for(int i=0; i<n; i++) {
for(int j=0; j<n-i-1; j++) {
System.out.print(" ");
}
for(int k=0; k<=2*i; k++) {
System.out.print("*");
}
System.out.println();
}
}
}
}
}
I need this for the last tree:
I have to do a 3*3 strut in the middle of the tree.
*
***
*****
*******
*********
***
***
***
I have no idea how to do that.
please help me and give me a code! Thanks!

The code below is maybe that what you are searching for. The additional loop prints the asterisks depending on the height. Three lines with 3 asterisks.
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("program.");
System.out.print("Height: ");
int n = sc.nextInt();
if (n <= 0) {
System.out.println("Height can only be positive.");
} else {
System.out.print("Levels: ");
int sz = sc.nextInt();
if (sz <= 0) {
System.out.println("Levels can only be positive.");
} else {
for (int s = 0; s < sz; s++) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < n - i - 1; j++) {
System.out.print(" ");
}
for (int k = 0; k <= 2 * i; k++) {
System.out.print("*");
}
System.out.println();
}
}
}
for (int i = 0; i < 3; i++) {
for (int j = 0; j < n - 1; j++) {
if (j == n - 2) {
System.out.println("***");
continue;
}
System.out.print(" ");
}
}
}
}
}

Related

Why is my program printing the next line at a location i didnt ask for?

Basically i have to print 2 traingles, top up upside down, buttom one upside up. They are both the same legnth, my program works fine yet for some reason my second triangle gets slighty tilted to the right.
Can anyone please explain to me how to fix and why this bug happens?
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("Enter number");
int num = s.nextInt();
for (int i = 0; i < num; i++) {
for (int j = num; j > i; j--) {
System.out.print("*");
System.out.print(" ");
}
System.out.println();
for (int k = 0; k <= i; k++) {
System.out.print(" ");
}
}
// second part
for (int i = 0; i < num; i++) {
for (int j = 0; j <= i; j++) {
System.out.print("*");
System.out.print(" ");
}
System.out.println();
for (int k=num; k>i; k-=2) {
System.out.print(" ");
}
}
}
}
* * *
* *
*
*
* *
* * *
A couple of small tweaks:
in the end of the first outer for loop
in the second outer for-loop at the end
See code comments below
for (int i = 0; i < num; i++) {
for (int j = num; j > i; j--) {
System.out.print("*");
System.out.print(" ");
}
System.out.println();
for (int k = 0; k < i; k++) { // stop condition changed
System.out.print(" ");
}
if (i < num -1) { // this was added
System.out.print(" ");
}
}
// second part
for (int i = 0; i < num; i++) {
for (int j = 0; j <= i; j++) {
System.out.print("*");
System.out.print(" ");
}
System.out.println();
for (int k=num-1; k>i+1; k-=1) { // stop condition change
System.out.print(" ");
}
}

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

How can i create these shapes with java

package assignment.pkg3;
import java.util.Scanner;
public class Assignment3 {
public static void main(String[] args) {
Scanner stdIn = new Scanner(System.in);
System.out.print("What integer length do you want: ");
int length = stdIn.nextInt();
for (int i = 0; i < length; i++) {
for (int j = ((length - 1) - i); j > 0; j--) {
System.out.print(" ");
}
for (int a = 0; a <= i; a++) {
System.out.print("*");
}
System.out.println();
}
for (int i = 0; i < length; i++) {
for (int j = 0; j < i; j++) {
System.out.print(" ");
}
for (int a = length; a > i; a--) {
System.out.print("*");
}
for (int b = (length - 1); b > i; b--) {
System.out.print("*");
}
System.out.println();
}
for (int i = 0; i < length; i++) {
for (int j = 0; j <= i; j++) {
for (int k = 0; k < i; k++) {
System.out.print(" ");
}
for (int a = 0; a <= i; a++) {
System.out.print("*");
}
System.out.println();
}
}
}
}
Hi, I need help making this 3rd shape.. I don't even know how to start it. I did the other 3 pretty well. (except I have the spaces wrong on shape D). Can anyone help me find somewhere to start. (BTW I'm in a beginner java class so I can't put anything in there that we haven't learned. So sticking to for loops is basically all we can essentially use lol)
Here is link to pic
Try to execute this one & check -
for (int i = 0; i < length/2; i++){
for (int j = 0; j < length; j++){
System.out.print("*" + " ");
}
System.out.println("");
for (int k = 0; k < length-1; k++){
System.out.print(" " + "*");
}
System.out.println("");
}
Hope this will solve your problem.

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)

Diamond in Java with input (using nested for loops or some conditional if statements)

I have to ask for an input and display a diamond with that many lines. I have a code but it displays less lines than I input. I'm confused with where I'm going wrong?
This is the code I have currently:
Code:
import java.util.Scanner;
public class PROBLEM3 {
public static void main(String [] args){
Scanner scan = new Scanner (System.in);
System.out.println("Please input number of lines:");
int i = 0, j, k, n;
n = scan.nextInt();
for(k = 0; k <= n / 2; k++){
for (i = 0; i < n - k; i++){
System.out.print(" ");
}
for (j = 1; j < k; j++){
System.out.print("*");
}
for (j = 1; j < k - 1 ; j++){
System.out.print("*");
}
System.out.println("");
}
for (k = (n / 2); k <= n ; k++){
for (i = 0; i < k; i++){
System.out.print(" ");
}
for ( i = 1; i < n - k ; i++){
System.out.print("*");
}
for (j = 0; j < n - k - 2; j++){
System.out.print("*");
}
System.out.print("\n");
}
scan.close();
}
}
Output:
Please input number of lines:
5
*
***
*
please try the below code,
import java.util.Scanner;
public class PROBLEM3 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Please input number of lines:");
int i = 0, j, k, n;
n = scan.nextInt();
for (k = 1; k <= (n + 1) / 2; k++) {
for (i = 0; i < n - k; i++) {
System.out.print(" ");
}
for (j = 0; j < k; j++) {
System.out.print("* ");
}
System.out.println("");
}
for (k = ((n + 1) / 2); k < n; k++) {
for (i = 1; i < k; i++) {
System.out.print(" ");
}
for (j = 0; j < n - k; j++) {
System.out.print(" *");
}
System.out.println("");
}
scan.close();
}
}

Categories