From 82099f4c9eb7f2bf11c3662337ac1371683ba234 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BD=A9=E8=BE=95=E9=BE=99=E5=84=BF?= Date: Thu, 31 Mar 2022 11:11:01 +0800 Subject: [PATCH] =?UTF-8?q?728:=E8=87=AA=E9=99=A4=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../editor/cn/SelfDividingNumbers.java | 73 +++++++++++++++++++ .../cn/doc/content/SelfDividingNumbers.md | 34 +++++++++ 2 files changed, 107 insertions(+) create mode 100644 src/main/java/leetcode/editor/cn/SelfDividingNumbers.java create mode 100644 src/main/java/leetcode/editor/cn/doc/content/SelfDividingNumbers.md diff --git a/src/main/java/leetcode/editor/cn/SelfDividingNumbers.java b/src/main/java/leetcode/editor/cn/SelfDividingNumbers.java new file mode 100644 index 0000000..e0ebca8 --- /dev/null +++ b/src/main/java/leetcode/editor/cn/SelfDividingNumbers.java @@ -0,0 +1,73 @@ +//自除数 是指可以被它包含的每一位数整除的数。 +// +// +// 例如,128 是一个 自除数 ,因为 128 % 1 == 0,128 % 2 == 0,128 % 8 == 0。 +// +// +// 自除数 不允许包含 0 。 +// +// 给定两个整数 left 和 right ,返回一个列表,列表的元素是范围 [left, right] 内所有的 自除数 。 +// +// +// +// 示例 1: +// +// +//输入:left = 1, right = 22 +//输出:[1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 15, 22] +// +// +// 示例 2: +// +// +//输入:left = 47, right = 85 +//输出:[48,55,66,77] +// +// +// +// +// 提示: +// +// +// 1 <= left <= right <= 10⁴ +// +// Related Topics 数学 👍 185 👎 0 + +package leetcode.editor.cn; + +import java.util.ArrayList; +import java.util.List; + +//728:自除数 +public class SelfDividingNumbers { + public static void main(String[] args) { + Solution solution = new SelfDividingNumbers().new Solution(); + // TO TEST + } + + //leetcode submit region begin(Prohibit modification and deletion) + class Solution { + public List selfDividingNumbers(int left, int right) { + List list = new ArrayList<>(); + for (int i = left; i <= right; i++) { + if (isSelfDivid(i)) { + list.add(i); + } + } + return list; + } + + private boolean isSelfDivid(int num) { + int tmp = num; + while (tmp >= 10) { + if (tmp % 10 == 0 || num % (tmp % 10) > 0) { + return false; + } + tmp /= 10; + } + return num % tmp == 0; + } + } +//leetcode submit region end(Prohibit modification and deletion) + +} diff --git a/src/main/java/leetcode/editor/cn/doc/content/SelfDividingNumbers.md b/src/main/java/leetcode/editor/cn/doc/content/SelfDividingNumbers.md new file mode 100644 index 0000000..a0e9825 --- /dev/null +++ b/src/main/java/leetcode/editor/cn/doc/content/SelfDividingNumbers.md @@ -0,0 +1,34 @@ +

自除数 是指可以被它包含的每一位数整除的数。

+ +
    +
  • 例如,128 是一个 自除数 ,因为 128 % 1 == 0128 % 2 == 0128 % 8 == 0
  • +
+ +

自除数 不允许包含 0 。

+ +

给定两个整数 left 和 right ,返回一个列表,列表的元素是范围 [left, right] 内所有的 自除数

+ +

 

+ +

示例 1:

+ +
+输入:left = 1, right = 22
+输出:[1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 15, 22]
+
+ +

示例 2:

+ +
+输入:left = 47, right = 85
+输出:[48,55,66,77]
+
+ +

 

+ +

提示:

+ +
    +
  • 1 <= left <= right <= 104
  • +
+
Related Topics
  • 数学

  • 👍 185
  • 👎 0
  • \ No newline at end of file