package 实习面试笔试题;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Today_Main3 {
//输入四则运算,只包含6和+-*
//将结果用6的矩阵LED显示出来
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//几个四则表达式
int n = sc.nextInt();
ArrayList <Long> list = new ArrayList <>();
String s;
for (int i = 0; i < n; i++) {
s = sc.next();
Long res = getRes(s);
list.add(res);
}
//将结果输出
System.out.println(list.get(0));
//对应的结果用LED形式显示出来
printRes(list);
}
private static void printRes(List<Long> list){
String [][] charNum={
{"66666", "....6", "66666", "66666", "6...6", "66666", "66666", "66666", "66666", "66666"},
{"6...6", "....6", "....6", "....6", "6...6", "6....", "6....", "....6", "6...6", "6...6"},
{"6...6", "....6", "66666", "66666", "66666", "66666", "66666", "....6", "66666", "66666"},
{"6...6", "....6", "6....", "....6", "....6", "....6", "6...6", "....6", "6...6", "....6"},
{"66666", "....6", "66666", "66666", "....6", "66666", "66666", "....6", "66666", "66666"}};
for(int i=0;i<5;i++){
for(int j=0;j<list.size();j++){
String num=list.get(j)+"";
for(int k=0;k<num.length();k++){
int index=num.charAt(k)-'0';
System.out.print(charNum[i][index]);
if(k!=num.length()-1){
//只要不是最后一个数字,就加..
System.out.print("..");
}
}
}
//空行
System.out.println();
}
}
//计算结果
private static Long getRes(String s) {
long cur = 0l;
long sum = 0l;
//符号位
long symbol = 1;
//把四则运算当做字符串处理,每次处理完更新标志位,symbol用来表示当前运算符之前的一个运算符
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (Character.isDigit(c)) {
//判断是否数字
//该方法为表示多位数的
cur = cur * 10 + c - '0';
} else if (c == '+') {
sum += symbol * cur;
cur=0;
symbol=1;
}else if(c=='-'){
sum+=symbol*cur;
cur=0;
symbol=-1;
}else{
//判断到乘法时,根据*前面的运算符,来决定symbol为正负数
symbol*=cur;
cur=0;
}
}
return sum+cur*symbol;
}
}
2018_今日头条春招(第3题,666的显示)
最新推荐文章于 2020-02-14 17:32:56 发布