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 }

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

原文地址:https://www.cnblogs.com/sun-rain/p/4928842.html