题目:
现给定任意正整数 n,请寻找并输出最小的正整数 m(m>9),使得 m 的各位(个位、十位、百位 … …)之乘积等于n,若不存在则输出 -1。
输入例子1:
36
输出例子1:
49
输入例子2:
100
输出例子2:
455
思想: 递归
package edu.LeetCode.三;
/**
* 现给定任意整数 n,请寻找并输出最小的正整数 m(m>9),
* 使得 m 的各位(个位、十位、百位 ... ...)之乘积等于n,
* 若不存在则输出 -1。
*/
public class 数位之积 {
public static int solution(int n){
int ans = resolve(n);
if(ans > 0){
return ans;
}
return -1;
}
public static int resolve(int n){
if(n <= 9){
return n;
}else{
for(int i = 9 ; i >= 2 ; i--){
if(n % i == 0) {
int a = resolve(n / i) * 10 + i;
return a;
}
}
}
return -1;
}
public static void main(String[] args) {
int res = solution(100);
System.out.println(res);
}
}