LWC 59:728. Self Dividing Numbers

LWC 59:728. Self Dividing Numbers

传送门:728. Self Dividing Numbers

Problem:

A self-dividing number is a number that is divisible by every digit it contains. For example, 128 is a self-dividing number because 128 % 1 == 0, 128 % 2 == 0, and 128 % 8 == 0. Also, a self-dividing number is not allowed to contain the digit zero. Given a lower and upper number bound, output a list of every possible self dividing number, including the bounds if possible.

Example 1:

Input: left = 1, right = 22 Output: [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 15, 22]

Note:

The boundaries of each input argument are 1 <= left <= right <= 10000.

思路: 非常直观,对每个num,进行拆分判断,合法加入集合,不合法忽略。

一版本:

    public List<Integer> selfDividingNumbers(int left, int right) {
        List<Integer> ans = new ArrayList<>();
        for (int i = left; i <= right; ++i) {
            if (valid(i)) {
                ans.add(i);
            }
        }
        return ans;
    }

    boolean valid(int num) {
        String value = Integer.toString(num);
        for (char c : value.toCharArray()) {
            if (c == '0') return false;
            else {
                if (num % (c - '0') != 0) return false;
            }
        }
        return true;
    }

二版本:

    public List<Integer> selfDividingNumbers(int left, int right) {
        List<Integer> ans = new ArrayList<>();
        for (int i = left; i <= right; ++i) {
            if (valid(i)) {
                ans.add(i);
            }
        }
        return ans;
    }

    boolean valid (int num) {
        int n = num;
        while (num != 0) {
            int c = num % 10;
            if (c == 0) return false;
            else {
                if (n % c != 0) return false;
            }
            num /= 10;
        }
        return true;
    }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java帮帮-微信公众号-技术文章全总结

数据结构是哈希表(hashTable)(二)

public class HashTableDouble { private DataItem[] hashArray; privat...

3295
来自专栏wym

Codeforces Round #483 (Div. 2) C. Finite or not?

You are given several queries. Each query consists of three integers pp, qq and ...

901
来自专栏小樱的经验随笔

STL中的nth_element()方法的使用

STL中的nth_element()方法的使用 通过调用nth_element(start, start+n, end) 方法可以使第n大元素处于第n位置(从...

2684
来自专栏小樱的经验随笔

后缀数组(一堆干货)

其实就是将两篇论文里的东西整合在了一起,并且提供了一个比较好理解的板。 后缀数组         字符串:一个字符串S是将n个字符顺次排列形成的数组,n称为S的...

2813
来自专栏hbbliyong

C#基础知识回顾--C#遍历enum类型、获取enum项个数

C#遍历enum类型 对于enum类型: 使用foreach遍历enum类型的元素并填充combox foreach ( HatchStyle hs1 in ...

2574
来自专栏C#

浅析.NET的反射特性

     在.net框架体系内,反射特性较多的应用到。反射的相关定义分为两种。     自然解释:射是一种自然现象,表现为受刺激物对刺激物的逆反应;这...

1627
来自专栏深度学习与计算机视觉

算法-字符串替换空格

题目: 实现一个函数,把字符串中的每一个空格替换成”%20”。例如输入”We are happy.”,则输出”We%20are%20happy.”。 解题思...

1796
来自专栏C语言及其他语言

[每日一题]C语言程序设计教程(第三版)课后习题6.6

题目描述 打印出所有"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该本身。 例如:153是一个水仙花数,因为153=1^3+5^3+3^3...

2634

扫码关注云+社区