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 }
开发这么久,很少使用到算法,今天重新温习下