Java 使用 for 循环创建圣诞树

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/30723247/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-11 10:03:39  来源:igfitidea点击:

Creating a Christmas Tree using for loops

javafor-loopnested-loops

提问by Atif Shah

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 循环和嵌套 for 循环制作圣诞树。要做到这一点,我需要能够使用 *. 我已经尝试了无数次,但在制作一个时遇到了问题。这是我的代码:

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:

我想做的是:

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

采纳答案by Sourav Kanta

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:

它使用 3 个循环:

  • first one for the number of rows,
  • second one for printing the spaces,
  • third one for printing the asterisks.
  • 第一个是行数,
  • 第二个用于打印空格,
  • 第三个用于打印星号。

回答by Buru

You can do it with simple logic

你可以用简单的逻辑做到这一点

for (int i = 0; i < 4; i++) 
            System.out.println("   *******".substring(i, 4 + 2*i));

回答by Trishek Pradhania

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

回答by how

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

回答by Shafi

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

回答by Kaustubh Masram

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)