每日算法1-数位之积vivo笔试题[递归]

题目描述

现给定任意正整数n,请寻找并输出最小的正整数m(m>9),使得m的各位(个位、十位…)之乘积等于n,若不存在则输出-1.

输入例子1:

36

输出例子1:

49

输入例子2:

100

输出例子2:

455

思路
分解因子

代码

public class Solution {
    /**
     * 输入一个整形数值,返回一个整形值
     * @param n int整型 n>9
     * @return int整型
     */
    public int solution (int n) {
        // write code here
        int result=resolve(n);
        if(result>0)
            return result;
        return -1;
    }
    
    public int resolve(int n){
        if(n<10)
            return n;
        for(int i=9;i>1;i--){
            if(n%i==0)
                return resolve(n/i)*10+i;
        }
        return -1;
    }
}

你可能感兴趣的:(算法,java)