栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【LeetCode】728. 自除数(C++)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【LeetCode】728. 自除数(C++)

728. 自除数
  • 1 题目描述
  • 2 示例描述
    • 2.1 示例1
  • 3 解题提示
  • 4 解题思路
  • 5 代码详解

1 题目描述

自除数 是指可以被它包含的每一位数除尽的数。
例如,128 是一个自除数,因为 128 % 1 == 0,128 % 2 == 0,128 % 8 == 0。
还有,自除数不允许包含 0 。
给定上边界和下边界数字,输出一个列表,列表的元素是边界(含边界)内所有的自除数。

2 示例描述 2.1 示例1

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

3 解题提示

每个输入参数的边界满足 1 <= left <= right <= 10000。

4 解题思路

取位运算,首先是将位数上有0的数排除,然后将每一个位上取出计算,不符合即跳出,若符合则继续运算,全部符合后加到数组后。

5 代码详解
class Solution {
public:
    vector selfDividingNumbers(int left, int right) {
        vector ans ;
        for ( int i = left ; i <= right ; i ++ )
        {
            int temp = i ;
            while( temp != 0 )
            {
                if ( temp % 10 == 0 )
                {
                    break ;
                }

                if ( i % (temp % 10) != 0 )
                {
                    break ;
                }
                else
                {
                    temp = temp /10 ;
                    if ( temp == 0 )
                    {
                        ans.push_back(i);
                    }
                }
            }
        }
        return ans ;
    }
};
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/352682.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号