import java.util.*; public class Solution { /** * 输入一个整形数值,返回一个整形值 * @param n int整型 n>9 * @return int整型 */ public int solution (int n) { // write code here if(n<10) return 10+n; else{ int m=0,base=1; while (n>9) { int i; for (i = 9; i > 1; i--) { if (n % i == 0) {//能被整除 m=m+i*base; base=base*10; n=n/i; break; } } if(n>9&&i==1) //可能是一个不能被2-9整除的数 例如13 break; } if(n<=9){ m=m+n*base; //加上位数最高的那位 return m; }else return -1; } } }
public static int solution (int n) { // write code here List<Integer> m = new ArrayList<>(); if (n < 10){ return 10 + n; } while (n >= 10){ for (int i = 9; i >= 2; i--) { if (0 == n % i){ m.add(i); n = n / i; break; } if (2 == i) return -1; } } m.add(n); int ans = 0; System.out.println(m); for (int i = 0; i < m.size(); i++) { ans += m.get(i) * Math.pow(10, i); } return ans; }拙见,望指点~这算是贪婪算法的思想吗?