【Java】P5730 显示屏—数组&switch语句—(OJ:洛谷)

【Java】P5730 显示屏—数组&switch语句—(OJ:洛谷)

题目

题目来源:洛谷OJ

题目链接:https://www.luogu.com.cn/problem/P5730

题目描述

液晶屏上,每个阿拉伯数字都是可以显示成 3×5 的点阵的(其中 X 表示亮点,. 表示暗点)。现在给出数字位数(不超过 100)和一串数字,要求输出这些数字在显示屏上的效果。数字的显示方式如同样例输出,注意每个数字之间都有一列间隔。

输入格式

输出格式

输入输出样例

输入 #1复制

10
0123456789

输出 #1复制

XXX...X.XXX.XXX.X.X.XXX.XXX.XXX.XXX.XXX
X.X...X...X...X.X.X.X...X.....X.X.X.X.X
X.X...X.XXX.XXX.XXX.XXX.XXX...X.XXX.XXX
X.X...X.X.....X...X...X.X.X...X.X.X...X
XXX...X.XXX.XXX...X.XXX.XXX...X.XXX.XXX

思路

将每个数组的存储到字符串数组中,通过switch语句判断输出

Java源代码

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.StreamTokenizer;

/**
 *@Title P5730显示屏.java
 *@description TODO
 *@time 2020年7月28日
 *@author Baisu
 *@version 1.0
 */
public class Main {

	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		PrintWriter pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));
		
		int n = Integer.parseInt(br.readLine());
		String a = br.readLine();
		char b[] = a.toCharArray();
		
		String s0 [] = {"XXX","X.X","X.X","X.X","XXX"};
		String s1 [] = {"..X","..X","..X","..X","..X"};
		String s2 [] = {"XXX","..X","XXX","X..","XXX"};
		String s3 [] = {"XXX","..X","XXX","..X","XXX"};
		String s4 [] = {"X.X","X.X","XXX","..X","..X"};
		String s5 [] = {"XXX","X..","XXX","..X","XXX"};
		String s6 [] = {"XXX","X..","XXX","X.X","XXX"};
		String s7 [] = {"XXX","..X","..X","..X","..X"};
		String s8 [] = {"XXX","X.X","XXX","X.X","XXX"};
		String s9 [] = {"XXX","X.X","XXX","..X","XXX"};
		
		for(int i=0; i<5; i++) {
			for(int j=0; j<n; j++) {
				int t = b[j]-48;
				switch(t) {
				case 0:
					pw.print(s0[i]);
					if(j!=n-1) {
						pw.print(".");
					}
					continue;
				case 1:
					pw.print(s1[i]);
					if(j!=n-1) {
						pw.print(".");
					}
					continue;
				case 2:
					pw.print(s2[i]);
					if(j!=n-1) {
						pw.print(".");
					}
					continue;
				case 3:
					pw.print(s3[i]);
					if(j!=n-1) {
						pw.print(".");
					}
					continue;
				case 4:
					pw.print(s4[i]);
					if(j!=n-1) {
						pw.print(".");
					}
					continue;
				case 5:
					pw.print(s5[i]);
					if(j!=n-1) {
						pw.print(".");
					}
					continue;
				case 6:
					pw.print(s6[i]);
					if(j!=n-1) {
						pw.print(".");
					}
					continue;
				case 7:
					pw.print(s7[i]);
					if(j!=n-1) {
						pw.print(".");
					}
					continue;
				case 8:
					pw.print(s8[i]);
					if(j!=n-1) {
						pw.print(".");
					}
					continue;
				case 9:
					pw.print(s9[i]);
					if(j!=n-1) {
						pw.print(".");
					}
					continue;
				}
			}
			pw.println();
		}
		pw.flush();
		
	}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值