A.每日一题:3345. 最小可整除数位乘积 I

题目链接: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;
    }
}
相关推荐
带多刺的玫瑰15 分钟前
Leecode#16刷题之最接近的三数之和
数据结构·算法
小刘是地理大王18 分钟前
OpenFeign 兜底回调(fallback / fallbackFactory)实战指南
java·后端
Yfhonier21 分钟前
岛屿数量(DFS)
算法·深度优先
橘子汽水16822 分钟前
Leetcode15:三数之和
java·数据结构·算法
Nolla23 分钟前
为什么 assertThrows 需要 () ->:Lambda 延迟执行与异常捕获
java
黄金龙PLUS25 分钟前
ASCON置换算法的优缺点
算法·网络安全·密码学·哈希算法·同态加密
SL_staff26 分钟前
风控规则不该写代码:一个开发者视角的规则引擎实践拆解
java·架构·全栈
邪修king30 分钟前
Re:Linux 系统篇(十六):进程篇(五):O (1) 调度算法深度解析 —— 优先级数组、位图优化与活跃 / 过期双队列
linux·运维·算法