请问这个怎么RE了,是超时了吗
package recursion;
import java.util.*;
import java.math.*;
public class Main {
static int[] book = {1, 2, 3, 4, 5, 6, 7, 8, 9};
static int count = 0;
static int n = 0;
public static int toNum(int l, int r) {
int ans = 0;
for(int i = l; i <= r; i++) {
ans = book[i] + ans * 10;
}
return ans;
}
public static void swap(int i, int j , int []arr) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
public static void permutation(int x, int[] arr){
if(x==arr.length) {//输出找到的全排列
for(int i = 0; i < 7 ; i++) {
int num = toNum( 0, i );
for (int j = i + 1; j < 8 ;j++) {
if( num + toNum(i + 1, j) / toNum(j + 1, arr.length - 1 ) == n && toNum(i + 1, j) % toNum(j + 1, arr.length - 1) == 0)
count++;
}
}
}
for(int i = x; i < arr.length;i++){//从x位置向后交换
{int y = arr[x];arr[x] = arr[i];arr[i] = y;}//swap(arr[x],arr[i])
permutation(x+1,arr);
{int y = arr[x];arr[x] = arr[i];arr[i] = y;}//swap(arr[x],arr[i])
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
permutation(0, book);
System.out.println(count);
sc.close();
}
}