【题一】:
现给定任意正整数 n,请寻找并输出最小的正整数 m(m>9),使得 m 的各位(个位、十位、百位 … …)之乘积等于n,若不存在则输出 -1。
import java.util.*;
public class Solution {
/**
* 输入一个整形数值,返回一个整形值
* @param n int整型 n>9
* @return int整型
*/
public int solution (int n) {
// write code here
int res = fun(n);
if(res>0) return res;
return -1;
}
public int fun(int n){
if(n<=9) return n;
for(int i=9;i>1;i--){//除数从最大开始,则结果最小
if(n%i==0){
return fun(n/i)*10+i;
}
}
return -1;
}
}
【题二】:
在vivo产线上,每位职工随着对手机加工流程认识的熟悉和经验的增加,日产量也会不断攀升。
假设第一天量产1台,接下来2天(即第二、三天)每天量产2件,接下来3天(即第四、五、六天)每天量产3件 … …
以此类推,请编程计算出第n天总共可以量产的手机数量。
天数:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
日产:1 2 2 3 3 3 4 4 4 4 5 5 5 5 5
import java.util.*;
public class Solution {
/**
*
* @param n int整型 第n天
* @return int整型
*/
public int solution (int n) {
// write code here
int sum = 0;
int day = 0;
for(int i=1;day<n;i++){//i:该日产量
for(int j=1;j<=i&&day<n;j++){//j:该产量持续的天数
sum = sum + i;
day++;//已计算的天数
}
}
return sum;
}
}