之前遇到的一道编程题,,一开始有点懵逼的说,后来觉得写的有点麻烦,大家仅供参考。
/**
* 请实现这么一个函数:传入一个int值,在屏幕输出类似LED显示屏效果的字母拼图。例如:输入1234567890,输出:
* # #######
* # #
* # #
* # ####### 。。。
* # #
* # #
* # #######
* 注意:输出的数字必须与样例中数字一致,每个字符宽高均为7个字符,空白部分用空格填充,数字之间有一个空格,换行用\n,将输出打印到
* 字符串中返回。
*/
package com.zyj;
import java.util.Scanner;
public class LEDInput {
// LED模子
static String [][] LEDarray= {
{ "#######", // 0
"# #",
"# #",
"# #",
"# #",
"# #",
"#######"},
{" #", // 1
" #",
" #",
" #",
" #",
" #",
" #"},
{"#######", // 2
" #",
" #",
"#######",
"# ",
"# ",
"#######"},
{"#######", //3
" #",
" #",
"#######",
" #",
" #",
"#######"},
{"# #", //4
"# #",
"# #",
"#######",
" #",
" #",
" #"},
{"#######", //5
"# ",
"# ",
"#######",
" #",
" #",
"#######"},
{"#######", //6
"# ",
"# ",
"#######",
"# #",
"# #",
"#######"},
{"#######", //7
" #",
" #",
" #",
" #",
" #",
" #"},
{"#######", //8
"# #",
"# #",
"#######",
"# #",
"# #",
"#######"},
{"#######", //9
"# #",
"# #",
"#######",
" #",
" #",
"#######"}
};
public static void inputLED(int number){
int num[] = new int[100];
int i = 0;
while(number > 0){
num[i++] = number % 10;
number = number / 10;
}
for (int j = i; j > 0; j--) {
for (int k = 0; k < 7; k++) {
System.out.println(LEDarray[num[j - 1]][k]);
}
}
}
@SuppressWarnings("resource")
public static void main(String[] args) {
System.out.println("请输入一个自然数:");
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
System.out.println("输出LED显示屏效果如下:");
inputLED(num);
}
}
下面是控制台的输出: