零基础搭建网站,大兴模版网站建设公司,普通网站逻辑设计数据流图,网站设计要点目录 1 问题描述 2 解决方案 1 问题描述 匪警请拨110,即使手机欠费也可拨通#xff01; 为了保障社会秩序#xff0c;保护人民群众生命财产安全#xff0c;警察叔叔需要与罪犯斗智斗勇#xff0c;因而需要经常性地进行体力训练和智力训练#xff01; 某批警察叔叔正在进行… 目录 1 问题描述 2 解决方案 1 问题描述 匪警请拨110,即使手机欠费也可拨通 为了保障社会秩序保护人民群众生命财产安全警察叔叔需要与罪犯斗智斗勇因而需要经常性地进行体力训练和智力训练 某批警察叔叔正在进行智力训练 1 2 3 4 5 6 7 8 9 110; 请看上边的算式为了使等式成立需要在数字间填入加号或者减号可以不填但不能填入其它符号。之间没有填入符号的数字组合成一个数例如1234567-89 就是一种合格的填法1234567-89 是另一个可能的答案。 请你利用计算机的优势帮助警察叔叔快速找到所有答案。 每个答案占一行。形如 1234567-891234567-89...... 已知的两个答案可以输出但不计分。 各个答案的前后顺序不重要。 注意 请仔细调试您的程序只有能运行出正确结果的时候才有机会得分 请把所有类写在同一个文件中调试好后存入与【考生文件夹】下对应题号的“解答.txt”中即可。 相关的工程文件不要拷入。 请不要使用package语句。 源程序中只能出现JDK1.5中允许的语法或调用。不能使用1.6或更高版本。 2 解决方案 1 import java.util.Stack;2 3 public class Main {4 public static char[] operation { , , - };5 6 public void check(char[] A) {7 StringBuffer s new StringBuffer();8 for(int i 1;i 8;i) {9 s.append(i);
10 if(A[i - 1] ! )
11 s.append(A[i - 1]);
12 }
13 s.append(9);
14 String t s.toString();
15 if(t.length() 9)
16 return;
17 StackInteger r new StackInteger();
18 StackCharacter o new StackCharacter();
19 for(int i 0;i t.length();i) {
20 if(t.charAt(i) || t.charAt(i) -) {
21 if(r.size() 2) {
22 int a1 r.pop();
23 int b1 r.pop();
24 char o1 o.pop();
25 if(o1 )
26 r.push(a1 b1);
27 else
28 r.push(b1 - a1);
29 }
30 o.push(t.charAt(i));
31 continue;
32 }
33 int a 0;
34 while(i t.length() t.charAt(i) 1 t.charAt(i) 9) {
35 a a * 10 (t.charAt(i) - 0);
36 i;
37 }
38 i--;
39 r.push(a);
40 }
41 int a1 r.pop();
42 int b1 r.pop();
43 char o1 o.pop();
44 if(o1 )
45 r.push(a1 b1);
46 else
47 r.push(b1 - a1);
48 if(r.pop() 110)
49 System.out.println(t);
50 }
51
52 public void dfs(int step, char[] A) {
53 if(step 8) {
54 check(A);
55 } else {
56 for(int i 0;i 3;i) {
57 A[step] operation[i];
58 dfs(step 1, A);
59 }
60 }
61 }
62
63 public static void main(String[] args) {
64 Main test new Main();
65 char[] A new char[8];
66 test.dfs(0, A);
67 }
68 } 运行结果 1234567-89
1234-5-6-7-89
123-45-6-78-9
123-4-567-8-9
1234567-89
1234567-8-9
12-34-56789
1234-56-789
1234567-89
1-2345-678-9