一道oj题-字母圣诞树

一道oj题-字母圣诞树

字母圣诞树
题目描述

打印一个字母圣诞树。
输入

第一行是一个整数K,表示样例的个数。以后每个样例是一个大写英文字母,占一行。
输出

输出对应的字母圣诞树,每行末尾没有空格,每个圣诞树的最后一行前无空格。
样例输入

5
A
B
C
D
E

样例输出

 A
AAA
  A
 AAA
  B
BBBBB
   A
  AAA
   B
 BBBBB
   C
CCCCCCC
    A
   AAA
    B
  BBBBB
    C
 CCCCCCC
    D
DDDDDDDDD
     A
    AAA
     B
   BBBBB
     C
  CCCCCCC
     D
 DDDDDDDDD
     E
EEEEEEEEEEE

java和c语言还是有许多的不同地方,还是稍微总结一下

import java.util.Scanner;

public class Main {
    
    
    public static void main(String[] args){
    
    
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        while(n>0){
    
    
            char a = in.next().charAt(0);
            //char b = 'A';          java的两种定义方法
            int k = a - 'A';
            int i,j;
            for (i=0;i<=k;i++){
    
    
                for (j=0;j<=k;j++) System.out.print(" ");
                System.out.print((char)('A'+i));
                System.out.println();
                for(j=0;j<k-i;j++) System.out.print(" ");
                for (j=0;j<=2*i+2;j++){
    
    
                    System.out.print((char)('A'+i));
                }
                System.out.println();
            }
            n--;
        }
    }
}

首先是输入:

要引入一个包,然后输入Scanner… in可以修改,但是得与下边的变量保持一致。

import java.util.Scanner;

Scanner in = new Scanner(System.in);

1、整型

int n = in.nextInt();

2、浮点型

Scanner in = new Scanner(System.in);
float i=in.nextFloat();
double j=input.nextDouble();

3、字符

Scanner in = new Scanner(System.in);
String n =in.nextLine();
char a = in.next().charAt(0);

char只能单个字符

然后是类型的转化:

如题中将int 型转化为 ascll码 char类型

System.out.print((char)('A'+i));

不同类型不能进行计算,所以得熟练的转化和定义好数据类型

在这里插入图片描述

例如开始使用的是String n =in.nextLine(); 就无法计算,但是String又无法转化为char类型

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/yzl_007/article/details/121294131