编写程序,用数字1,2,3,4,5,6,7,8,9代替一下算式中的#,使等式成立。
##*#=#*##=###
要求9个数字都必须用到。
##*#=#*##=###
要求9个数字都必须用到。
正好前几天用递归解决了遍历m个元素取k个的问题,今天用同样的思路做出了全排列。
每次循环都要开一个新数组,内存开销大。
也可以把九个数字转成StringBuilder,是否内存占用会变小?如果不用递归,应该如何解决呢?
------Output------
29*6=3*58=174
58*3=6*29=174
39*4=2*78=156
78*2=4*39=156
import java.util.*;
public class Equation{
public static void main(String[] args){
final int N = 9;
int[] num = new int[N];
for(int i = 0; i < N; i++){
num[i] = i+1;
}
rank(num, num.length-1);
}
/**
* 验证算式##*#=#*##=###
* 一共三个表达式
*/
public static void confirmEquation(int[] arr){
int x1 = arr[0]*10+arr[1];
in