原题目:
现给定任意正整数 n,请寻找并输出最小的正整数 m(m>9),使得 m 的各位(个位、十位、百位 … …)之乘积等于n,若不存在则输出 -1。
输入例子1:
36
输出例子1:
49
输入例子2:
100
输出例子2:
455
思路:
先判断是否小于10,如果小于十,就直接可以返回10+这个数
大于十的话,用for循环和while循环有无对应的乘积数,如果没有,就返回-1,如果有就返回对应的数位积。
代码:
int solution(int n) {
// write code here
if (n < 10) return 10 + n;
int res = 0, weishu = 1;
for (int i = 9; i > 1; i--) {
while (n % i == 0) {
res += i * weishu;
weishu*=10;
n /= i;
}
}
if (n > 1) return -1;
else return res;
}
};
笔试题7-工号问题
https://blog.csdn.net/weixin_44370808/article/details/106523775