题目链接:3345. 最小可整除数位乘积 I(简单)
算法原理:
解法:最多十次遍历
1ms击败99.67%
时间复杂度O(log n)
首先明确:"0是所有非0整数的倍数"
所以从 n 开始,至多循环 4 次,一定会遇到个位数为 0 的数,其数位积为 0,一定是 t 的倍数
所以从 n 一直枚举到 n+9 即可
Java代码:
java
class Solution {
//3345. 最小可整除数位乘积 I
public int smallestNumber(int n, int t) {
for(int i=n;i<n+10;i++){
int ret=1,x=i;
while(x>0){
int tmp=x%10;
ret*=tmp;
x/=10;
}
if(ret%t==0) return i;
}
//照顾编译器
return 0;
}
}