加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

728. Self Dividing Numbers

发布时间:2020-12-15 05:26:31 所属栏目:Java 来源:网络整理
导读:1 import java.util.ArrayList; 2 import java.util.List; 3 4 public class SelfDividingNumbers { 5 /** 6 * 728. Self Dividing Numbers 7 * Easy 8 * p 9 * A self-dividing number is a number that is divisible by every digit it contains. 10 * For
 1 import java.util.ArrayList;
 2 import java.util.List;
 3 
 4 public class SelfDividingNumbers {
 5     /**
 6      * 728. Self Dividing Numbers
 7      * Easy
 8      * <p>
 9      * A self-dividing number is a number that is divisible by every digit it contains.
10      * For example,128 is a self-dividing number because 128 % 1 == 0,128 % 2 == 0,and 128 % 8 == 0.
11      * Also,a self-dividing number is not allowed to contain the digit zero.
12      * Given a lower and upper number bound,output a list of every possible self dividing number,including the bounds if possible.
13      * Example 1:
14      * Input:
15      * left = 1,right = 22
16      * Output: [1,2,3,4,5,6,7,8,9,11,12,15,22]
17      * Note:
18      * The boundaries of each input argument are 1 <= left <= right <= 10000.
19      */
20     public List<Integer> solution(int left,int right) {
21         List<Integer> res = new ArrayList<>();
22         if (right < left)
23             return res;
24         for (int i = left; i <= right; i++) {
25             boolean flag = false;
26             int k = i;
27             while (!flag) {
28                 int km = k % 10;
29                 k = k / 10;
30                 if (km > 0 && i % km == 0 && k == 0) {
31                     flag = true;
32                     break;
33                 }
34                 if (km == 0 || i % km != 0)
35                     break;
36             }
37             if (flag)
38                 res.add(i);
39         }
40         return res;
41     }
42 
43     public List<Integer> solution2(int left,int right) {
44         List<Integer> list = new ArrayList<>();
45         for (int i = left; i <= right; i++) {
46             int j = i;
47             for (; j > 0; j /= 10) {
48                 if ((j % 10 == 0) || (i % (j % 10) != 0)) break;
49             }
50             if (j == 0) list.add(i);
51         }
52         return list;
53     }
54 
55     public static void main(String[] arg) {
56         SelfDividingNumbers s = new SelfDividingNumbers();
57         System.out.println(s.solution(1,22));
58     }
59 }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读