• java 通过控制台输入的数字打印菱形字母


     1 package com.rui.test; 
     2 
     3 import java.util.Scanner;
     4 
     5 /** 
     6 * @author sunshine 
     7 * @version 1.0
     8 * @date:2015年11月1日 下午7:34:28 
     9 * @description: 通过控制台输入的数字打印菱形字母
    10 */ 
    11 public class MathCounter {
    12 
    13     public static void main(String[] args) {
    14         Scanner scanner = new Scanner(System.in);
    15         System.out.println("输入数字:");
    16         int len = scanner.nextInt();
    17         printLing(len);
    18         
    19     }
    20 
    21     /**
    22      *                 A      1   3空格1个字母
    23      *                BBB       2   2空格3个字母
    24      *               CCCCC       3   1空格5个字母
    25      *              DDDDDDD   4   0空格7个字母
    26      *               CCCCC       5   1空格5个字母   4  4*2
    27      *                BBB       6   2空格3个字母   4  5*2
    28      *                 A       7   3空格1个字母   4  6*2
    29      * */
    30     public static void printLing(int len){
    31 //        String[] arr = {"A","B","C","D","C","B","A"};
    32         if(len>25){
    33         //    len = 25;
    34         }
    35         if(len%2==0){
    36             len = len + 1;
    37         }
    38         int n = len/2 + 1;
    39         String[] arr = getStr(len);
    40         for(int i=0;i<n;i++){
    41             for(int j=0;j<n-i;j++){
    42                 System.out.print(" ");
    43             }
    44             for(int j=0;j<2*i+1;j++){
    45                 System.out.print(arr[i]);
    46             }
    47             System.out.println();
    48         }
    49         for(int i=0;i<n-1;i++){
    50             for(int j=0;j<i+2;j++){
    51                 System.out.print(" ");
    52             }
    53             for(int j=0;j<2*(n-i)-3;j++){
    54                 System.out.print(arr[i+n]);
    55             }
    56             System.out.println();
    57         }
    58     }
    59     
    60     public static String[] getStr(int len){
    61         String[] arr = new String[len];
    62         for(int i=0;i<len;i++){
    63             if(i<(len/2+1)){
    64                 char _char = (char)(65 + i);
    65                 arr[i] = String.valueOf(_char);
    66             }else{
    67                 char _char = (char)(65+len-i-1);  //(len*2-1)-2*i
    68                 arr[i] = String.valueOf(_char);
    69             }
    70         }
    71         /*for(int i=0;i<len;i++){
    72             
    73             System.out.println(arr[i]);
    74         }*/
    75         
    76         return arr;
    77     }
    78     
    79     //遍历0-256数字在ASCII码中对应的字母   A===65
    80     public void printChar(){
    81         for(int i=0;i<256;i++){
    82             char _char = (char)i;
    83             System.out.println(i+"==="+_char);
    84         }
    85     }
    86 }

    开发这么久,很少使用到算法,今天重新温习下

  • 相关阅读:
    Grub 和 UEFI启动
    神舟战神插上耳机没有声音,重启又有声音..
    批处理 ------ @、ECHO OFF、ECHO ON 的使用
    linux command ------ find
    Adobe Premiere Pro CC ------ 快捷键
    分布式session一致性问题
    DNS域名解析
    CDN内容分发
    令牌桶限流算法和漏桶限流算法区别
    AOP与IOC区别
  • 原文地址:https://www.cnblogs.com/sun-rain/p/4928842.html
Copyright © 2020-2023  润新知