Java算法编程题系列之 3、猜算式
题目:
看下面的算式:
□□ x □□ = □□ x □□□
它表示:两个两位数相乘等于一个两位数乘以一个三位数。
如果没有限定条件,这样的例子很多。
但目前的限定是:这9个方块,表示1~9的9个数字,不包含0。
该算式中1至9的每个数字出现且只出现一次!
比如:
46 x 79 = 23 x 158
54 x 69 = 27 x 138
54 x 93 = 27 x 186
…..
请编程,输出所有可能的情况!
注意:
左边的两个乘数交换算同一方案,不要重复输出!
不同方案的输出顺序不重要
题目解答:
import java.util.*;
public class Question3 {
public static long count = 0;
public static List<Vector<Character>> filteredNonRedundantResults;
/* 用于存放全排列的结果 */
private static boolean isfilter(Vector<Character> result) {
/* 按照要求条件进行过滤 判断 */
int a = (result.elementAt(0) - '0') * 10 + (result.elementAt(1) - '0');
int b = (result.elementAt(2) -