zoukankan      html  css  js  c++  java
  • [LeetCode] Self Dividing Numbers

    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 == 0128 % 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.

    找出给定区间内的自分数,自分数就是可以整除的数字中每一位数的那个数。由此判断自分数中不含有数字0。

    首先写一个函数来判断自分数,按照自分数的定义书写即可。注意判断数字0不能是除数。

    然后在主函数中,循环添加符合要求的自分数。

    class Solution {
    public:
        vector<int> selfDividingNumbers(int left, int right) {
            vector<int> res;
            for (int i = left; i <= right; i++) {
                if (isSelfDividingNumbers(i))
                    res.push_back(i);
            }
            return res;
        }
        bool isSelfDividingNumbers(int num) {
            int tmp = num, digit = 0;
            while (tmp) {
                digit = tmp % 10;
                if (digit == 0 || num % digit != 0)
                    return false;
                tmp /= 10;
            }
            return true;
        }
    };
    // 3 ms
  • 相关阅读:
    Linux进阶之正则,shell三剑客(grep,awk,sed),cut,sort,uniq
    生成下拉列表
    获取服务器时间
    Web窗体(WebForm)
    Session
    Cookie
    Server属性
    Response缓冲区
    小案例
    Web窗体(WebForm)的删除和修改
  • 原文地址:https://www.cnblogs.com/immjc/p/7865488.html
Copyright © 2011-2022 走看看