今日头条笔试题-形式化算式

  2017-4-18笔试题解答

形式化算式

计算很简单,输出比较麻烦。输出我们需要对每个数字/符号单独输出。可以观察到,每个字符实际上都是一个矩阵,所以我们可以预处理出每个字符矩阵的样子,然后输出即可。

代码如下:

  1 import java.text.DecimalFormat;
  2 import java.util.Scanner;
  3 
  4 import javax.script.ScriptEngine;
  5 import javax.script.ScriptEngineManager;
  6 import javax.script.ScriptException;
  7 
  8 public class x {
  9     static char [][]map;
 10 public static void main(String[] args) {
 11  
 12      
 13         ScriptEngineManager sem=new ScriptEngineManager();
 14             ScriptEngine engine=sem.getEngineByExtension("js");
 15             String s=new Scanner(System.in).nextLine();
 16             double result1;
 17             double result = 0;
 18             
 19             try {
 20                 result = Double.parseDouble(""+engine.eval(s));
 21                 DecimalFormat    df   = new DecimalFormat("########0.00");   
 22 
 23              
 24                   result1=Double.parseDouble(df.format(result)); 
 25                   if(Math.abs(result1-Math.floor( result1))>0.0001)
 26                   {
 27                       s+="="+ result1 ;
 28                   }
 29                   else{
 30                       s+="="+(new   Double(result1)).intValue();  ;
 31                   }
 32                   int len=0;
 33                   
 34                   for( int i=0; i<s.length(); i++)
 35                   {
 36                       char x=s.charAt(i);
 37                       if(x=='1')
 38                           len+=1;
 39                       else if(x=='.')
 40                           len+=2;
 41                       else if(x=='=')
 42                           len+=4;
 43                       else  
 44                           len+=3;
 45                     
 46                   }
 47                   map=new char [5][];
 48                  // System.out.println(s);
 49                   for( int i=0; i<5; i++)
 50                   {
 51                       map[i]=new char [len+2*(s.length()-1)];
 52                   }
 53                 //  System.out.println("len="+(len+2*(s.length()-1)));
 54                   for( int i=0; i<s.length(); i++)
 55                   {
 56                       draw(s.charAt(i));
 57                   }
 58             } catch (ScriptException e) {
 59                 // TODO Auto-generated catch block
 60                 e.printStackTrace();
 61             }
 62             for(int i=0;i<5;i++)
 63             {
 64                 for( int j=0; j<map[i].length; j++)
 65                 {
 66                          System.out.print(map[i][j]);
 67                 }
 68                  System.out.println("");
 69             }
 70           //  System.out.println(result);
 71         
 72 }
 73 
 74 static int f=0;
 75 private static void draw(char c) {
 76     // TODO Auto-generated method stub
 77     if(c=='1')
 78     {
 79         map[0][f]='*';
 80         map[1][f]='*';
 81         map[2][f]='*';
 82         map[3][f]='*';
 83         map[4][f]='*';
 84     }
 85      
 86         else if(c=='2')
 87         {
 88             map[0][f]='*';map[0][f+1]='*';map[0][f+2]='*';
 89             map[1][f]=' ';map[1][f+1]=' ';map[1][f+2]='*';
 90             map[2][f]='*';map[2][f+1]='*';map[2][f+2]='*';
 91             map[3][f]='*';map[3][f+1]=' ';map[3][f+2]=' ';
 92             map[4][f]='*';map[4][f+1]='*';map[4][f+2]='*';
 93         }
 94         else if(c=='3')
 95         {
 96             map[0][f]='*';map[0][f+1]='*';map[0][f+2]='*';
 97             map[1][f]=' ';map[1][f+1]=' ';map[1][f+2]='*';
 98             map[2][f]='*';map[2][f+1]='*';map[2][f+2]='*';
 99             map[3][f]=' ';map[3][f+1]=' ';map[3][f+2]='*';
100             map[4][f]='*';map[4][f+1]='*';map[4][f+2]='*';
101         }
102         else if(c=='4')
103         {
104             map[0][f]='*';map[0][f+1]=' ';map[0][f+2]='*';
105             map[1][f]='*';map[1][f+1]=' ';map[1][f+2]='*';
106             map[2][f]='*';map[2][f+1]='*';map[2][f+2]='*';
107             map[3][f]=' ';map[3][f+1]=' ';map[3][f+2]='*';
108             map[4][f]=' ';map[4][f+1]=' ';map[4][f+2]='*';
109         }
110         else if(c=='5')
111         {
112             map[0][f]='*';map[0][f+1]='*';map[0][f+2]='*';
113             map[1][f]='*';map[1][f+1]=' ';map[1][f+2]=' ';
114             map[2][f]='*';map[2][f+1]='*';map[2][f+2]='*';
115             map[3][f]=' ';map[3][f+1]=' ';map[3][f+2]='*';
116             map[4][f]='*';map[4][f+1]='*';map[4][f+2]='*';
117         }
118         else if(c=='6')
119         {
120             map[0][f]='*';map[0][f+1]='*';map[0][f+2]='*';
121             map[1][f]='*';map[1][f+1]=' ';map[1][f+2]=' ';
122             map[2][f]='*';map[2][f+1]='*';map[2][f+2]='*';
123             map[3][f]='*';map[3][f+1]=' ';map[3][f+2]='*';
124             map[4][f]='*';map[4][f+1]='*';map[4][f+2]='*';
125         }
126         else if(c=='7')
127         {
128             map[0][f]='*';map[0][f+1]='*';map[0][f+2]='*';
129             map[1][f]=' ';map[1][f+1]=' ';map[1][f+2]='*';
130             map[2][f]=' ';map[2][f+1]=' ';map[2][f+2]='*';
131             map[3][f]=' ';map[3][f+1]=' ';map[3][f+2]='*';
132             map[4][f]=' ';map[4][f+1]=' ';map[4][f+2]='*';
133         }
134         else if(c=='8')
135         {
136             map[0][f]='*';map[0][f+1]='*';map[0][f+2]='*';
137             map[1][f]='*';map[1][f+1]=' ';map[1][f+2]='*';
138             map[2][f]='*';map[2][f+1]='*';map[2][f+2]='*';
139             map[3][f]='*';map[3][f+1]=' ';map[3][f+2]='*';
140             map[4][f]='*';map[4][f+1]='*';map[4][f+2]='*';
141         }
142         else if(c=='9')
143         {
144             map[0][f]='*';map[0][f+1]='*';map[0][f+2]='*';
145             map[1][f]='*';map[1][f+1]=' ';map[1][f+2]='*';
146             map[2][f]='*';map[2][f+1]='*';map[2][f+2]='*';
147             map[3][f]=' ';map[3][f+1]=' ';map[3][f+2]='*';
148             map[4][f]='*';map[4][f+1]='*';map[4][f+2]='*';
149         }
150         else if(c=='0')
151         {
152             map[0][f]='*';map[0][f+1]='*';map[0][f+2]='*';
153             map[1][f]='*';map[1][f+1]=' ';map[1][f+2]='*';
154             map[2][f]='*';map[2][f+1]=' ';map[2][f+2]='*';
155             map[3][f]='*';map[3][f+1]=' ';map[3][f+2]='*';
156             map[4][f]='*';map[4][f+1]='*';map[4][f+2]='*';
157         }
158         else if(c=='+')
159         {
160             map[0][f]=' ';map[0][f+1]=' ';map[0][f+2]=' ';
161             map[1][f]=' ';map[1][f+1]='*';map[1][f+2]=' ';
162             map[2][f]='*';map[2][f+1]='*';map[2][f+2]='*';
163             map[3][f]=' ';map[3][f+1]='*';map[3][f+2]=' ';
164             map[4][f]=' ';map[4][f+1]=' ';map[4][f+2]=' ';
165         }
166         else if(c=='-')
167         {
168             map[0][f]=' ';map[0][f+1]=' ';map[0][f+2]=' ';
169             map[1][f]=' ';map[1][f+1]=' ';map[1][f+2]=' ';
170             map[2][f]='*';map[2][f+1]='*';map[2][f+2]='*';
171             map[3][f]=' ';map[3][f+1]=' ';map[3][f+2]=' ';
172             map[4][f]=' ';map[4][f+1]=' ';map[4][f+2]=' ';
173         }
174         else if(c=='*')
175         {
176             map[0][f]=' ';map[0][f+1]=' ';map[0][f+2]=' ';
177             map[1][f]='*';map[1][f+1]=' ';map[1][f+2]='*';
178             map[2][f]=' ';map[2][f+1]='*';map[2][f+2]=' ';
179             map[3][f]='*';map[3][f+1]=' ';map[3][f+2]='*';
180             map[4][f]=' ';map[4][f+1]=' ';map[4][f+2]=' ';
181         }
182         else if(c=='/')
183         {
184             map[0][f]=' ';map[0][f+1]=' ';map[0][f+2]=' ';
185             map[1][f]=' ';map[1][f+1]=' ';map[1][f+2]='*';
186             map[2][f]=' ';map[2][f+1]='*';map[2][f+2]=' ';
187             map[3][f]='*';map[3][f+1]=' ';map[3][f+2]=' ';
188             map[4][f]=' ';map[4][f+1]=' ';map[4][f+2]=' ';
189         }
190         else if(c=='=')
191         {
192             map[0][f]=' ';map[0][f+1]=' ';map[0][f+2]=' ';map[0][f+3]=' ';
193             map[1][f]='*';map[1][f+1]='*';map[1][f+2]='*';map[1][f+3]='*';
194             map[2][f]=' ';map[2][f+1]=' ';map[2][f+2]=' ';map[2][f+3]=' ';
195             map[3][f]='*';map[3][f+1]='*';map[3][f+2]='*';map[3][f+3]='*';
196             map[4][f]=' ';map[4][f+1]=' ';map[4][f+2]=' ';map[4][f+3]=' ';
197         }
198         else if(c=='.')
199         {
200             map[0][f]=' ';map[0][f+1]=' '; 
201             map[1][f]=' ';map[1][f+1]=' '; 
202             map[2][f]=' ';map[2][f+1]=' '; 
203             map[3][f]='*';map[3][f+1]='*'; 
204             map[4][f]='*';map[4][f+1]='*'; 
205         }
206         char x=c;
207           if(x=='1')
208               f+=3;
209           else if(x=='.')
210               f+=4;
211           else if(x=='=')
212               f+=6;
213           else  
214               f+=5;
215      
216     
217 }
218 }

 

posted on 2017-04-18 21:19  豆芽的博客  阅读(272)  评论(0编辑  收藏  举报