首页 > 试题广场 >

字符圣诞树

[编程题]字符圣诞树
  • 热度指数:58900 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
输入一个字符,用它构造一个边长为5的三角形圣诞树。

数据范围:保证输入的字符是一个 char 类型的值

输入描述:
输入只有一行,一个字符。


输出描述:
该字符构成的三角形圣诞树。
示例1

输入

1

输出

    1
   1 1
  1 1 1
 1 1 1 1
1 1 1 1 1
import java.util.Scanner;

/**
 *
 * @Title          字符圣诞树
 * @Description 输入一个字符,用它构造一个边长为5的三角形圣诞树。
 *
 * 数据范围:保证输入的字符是一个 char 类型的值
 *  输入描述:
 *      输入只有一行,一个字符。
 * 输出描述:
 *      该字符构成的三角形圣诞树。
 * @author weijunfu<ijunfu @ qq.com>
 * @date 2022/03/18 00:01
 * @version 1.0.0
 *
 */

public class Main {

    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);

        String s = in.next();

        for(int i=0; i<5; i++) {

            // 左侧空格
            for(int j=0; j < 4-i; j++) {
                System.out.print(" ");
            }

            // 输出字符
            for(int j=0; j<=i; j++) {
                System.out.print(s + " ");
            }

            // 换行
            System.out.println();
        }

        in.close();

    }
}

发表于 2022-03-18 00:10:44 回复(0)
解题思路:先获取到行数,确定行数后再确定每行左边的空格,然后再确定右边要输入的内容
import java.util.Scanner;  public class Main2\ { public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);    String a = scanner.next();    String b = " ";  int n = 5;  for (int x=1;x<=n;x++){  for (int y=0;y< n-x;y++){
                System.out.print(b);  }  for (int j= 0;j<2*x-1;j++){ if ((j)%2==0){
                    System.out.print(a);  }  else {
                    System.out.print(b);  }
            }

            System.out.println();  }
    }
}


发表于 2022-02-16 16:31:01 回复(0)
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
            Scanner scan = new Scanner(System.in);
            String n=scan.next();
            for(int i=1;i<=5;i++){
                for(int j=5-i;j>0;j--) {
                    System.out.print(" ");
                }
                    for(int k=1;k<=i;k++){
                        System.out.print(n+" ");
                    }
                    System.out.println("");
                }
            }
        }
发表于 2021-10-18 16:15:15 回复(0)
import java.util.Date;
import java.util.Iterator;
import java.util.Scanner;
import java.util.ServiceConfigurationError;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
           String s = sc.nextLine();
           for(int i=0;i<5;i++){
               for(int k=0;k<4-i;k++){System.out.printf(" ");}
               for(int j=0;j<i+1;j++){
                   System.out.printf(s+" ");}
               System.out.println();
           }}
    }
    }

发表于 2021-10-02 19:53:03 回复(0)
作为一个小白来说一下我的思路
1
1 1
1 1 1
1 1 1 1
1 1 1 1 1
这样的数组大家肯定都会打印,就是每一行打印固定的 [ 1 + " " ],那么这样一看其实就给前面打印空格就好了,第一行打印4个,第二行打印三个......
上代码:
Scanner sc =  new Scanner(System.in);
        String str = sc.next();
        int key = 4;//定义空格打印
        for (int i = 0; i < 5; i++) {
            for(int j = key; j > 0; j--){
                System.out.print(" ");
            }
            //这里是第一步,就是打印字符数组,现在给前面加空格
            for (int j = 0; j < i + 1; j++) {
                System.out.print(str + " ");
            }
            key--;
            System.out.println();
        }
    }//BC12 字符金字塔



发表于 2021-09-07 16:15:15 回复(2)
import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        String n = in.next();
        int i = 1;
        while (i<=5){
            for (int j = 4;j>=i;j--){
                System.out.print(" ");
            }
            for (int k=1;k<=i;k++){
                System.out.print(n+" ");
            }
            System.out.println();
            i++;
        }
    }
}

发表于 2021-08-24 11:45:46 回复(0)
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        String str, result;
        result = "    ";
        str = input.nextLine();
        for (int i = 0; i < 5; i++){
            result += str;
            System.out.println(result.substring(i));
            result += " ";
        }
    }
}

发表于 2021-07-30 17:16:08 回复(0)
public class Main{
    public static void main(String[] args){
         char i=new java.util.Scanner(System.in).next().charAt(0);
            for(int k=1;k<6;k++){
                for(int j=5-k;j>0;j--){
                   System.out.print(" ");
                }
                for(int d=1;d<=k;d++){
                    System.out.print(i+" ");
                }
                System.out.println();
            }
    }
}
发表于 2021-06-15 20:15:30 回复(0)
import java.util.*;
public class Main{
    public static void main(String arg[]){
        Scanner input=new Scanner(System.in);
        String sum=null;int a=5;
        sum=input.next();
        for(int i=1;i<=a;i++){
            for(int k=1;k<=a-i;k++){
                System.out.print(" ");
            }
            for(int x=1;x<=a;){
                System.out.print("*");
                if(x%2==0){
                    System.out.print(" ");
                    continue;
                }
                x++;
            }
            System.out.println();
        }
    }
}
用Java写的,哪位大哥能给说一下怎么改进吗,没有通过编译。


编辑于 2021-01-04 21:01:42 回复(0)
import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String n = sc.nextLine();
        for(int i=1;i<=5;i++){
            for(int k=1;k<=5-i;k++){
                System.out.print(" ");
            }
            for(int j=1;j<=i;j++){
                System.out.print(n + " ");
            } 
            System.out.println();
        }
    }
}
//一开始写的int n = sc.nextInt();一直出错,突然想到测试数据可能包含字母特殊符号,后来改成String n = sc.nextLine();成功
发表于 2020-10-26 16:49:20 回复(0)
import java.util.Scanner;
public class Main{
  public static void main(String[] args){
            Scanner scanner=new Scanner(System.in);
            String s=scanner.nextLine();
            func(s);
        }
    public static void func(String s){
        for(int i = 1; i <= 5;i++)
        {
            for(int k = 5-i; k > 0 ;k--)
            {
                System.out.print(" ");
            }
            for(int j = 0; j < i;j++)
            {
                System.out.print(s+" ");
            }
            System.out.println();
        }
    }
}

发表于 2020-10-20 20:22:26 回复(0)

import java.util.Scanner;

public class Main {
    public static void main(String[] args){
        Scanner scnner=new Scanner(System.in);
        String c=scnner.nextLine();
        int n = 5;
        for(int i = 1; i <= n; i++){   // 控制行数
            for (int m = 1; m <= n-i; m++) { // 左侧空格
                System.out.printf(" ");
            }
            for (int j = 1; j <= 2*i-1; j++) {
                if ((j+1)%2 == 0){  // 基数输出1,偶数输出空格
                    System.out.print(c);
                }else {
                    System.out.printf(" ");
                }
            }
            System.out.println();
        }
    }
}


编辑于 2020-10-14 16:55:05 回复(0)
import java.io.*;
public class Main{
    public static void main(String[] args)throws IOException{
       char c = (char)System.in.read();
        for(int i=1;i<=5;i++){
            for(int j=5-i;j>0;j--){
                System.out.print(" ");
            }
            for(int m=1;m<=i;m++)
            System.out.print(c+" ");
            System.out.println();
        }
    }
}
考循环的使用,注意执行顺序即可,另java注意 print 和 peintln的区别
发表于 2020-05-11 19:17:09 回复(0)
import java.io.IOException;
public class Main{
    public static void main(String[] args) throws IOException{
        char c=(char)System.in.read();
        int n = 5;
        for(int i = 1; i <= n; i++){   // 控制行数
            for (int m = 1; m <= n-i; m++) { // 左侧空格
                System.out.printf(" ");
            }
            for (int j = 1; j <= 2*i-1; j++) {
                if ((j+1)%2 == 0){  // 基数输出1,偶数输出空格
                    System.out.print(c);
                }else {
                    System.out.printf(" ");
                }
            }
            System.out.println();
        }
    }
}

发表于 2020-04-13 21:57:23 回复(0)
import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        int number = input.nextInt();
        for(int i = 1; i <= 5;i++)
        {
            for(int k = 5-i; k > 0 ;k--)
            {
                System.out.print(" ");
            }
            for(int j = 0; j < i;j++)
            {
                System.out.print(number+" ");
            }
            System.out.println();
        }
    }
}
这哪里错了呀,怎么不通过
发表于 2020-04-10 23:40:10 回复(1)
import java.util.*;
public class Main{
    public static void main(String[] args)
    {
        Scanner in=new Scanner(System.in);
        String s=in.nextLine();
        sjt(s,5);
    }
    public static void sjt(String str,int n){
        for(int i=0;i<n;i++)
        {
            int left=n-i-1;int right=i+n-1;
            int j=0;
            while(j<2*n-1)
            {
                if(j>=left&&j<=right) 
                {
                    System.out.print(str+" ");j=j+2;}
                else 
                {
                    System.out.print(" ");j++;}
            }
            System.out.println("");
        }
        
    }
}

发表于 2020-03-27 03:16:42 回复(0)
import java.util.Scanner;

public class Main{

    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        char c=scanner.nextLine().charAt(0);
        System.out.println("    "+c);
        System.out.println("   "+c+" "+c);
        System.out.println("  "+c+" "+c+" "+c);
        System.out.println(" "+c+" "+c+" "+c+" "+c);
        System.out.println(c+" "+c+" "+c+" "+c+" "+c);
    }


}
发表于 2020-03-22 12:50:42 回复(1)