题目描述:

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.

要完成的函数:

vector<int> selfDividingNumbers(int left, int right)

说明:

1、要判断一个数是不是可自分的,看该数字是不是可整除数字上的每一位。比如128可整除8,可整除2,可整除1,所以128可自分。

现在给定一个左界限和一个右界限,要求返回包含左界限和右界限在内的所有可自分数。

2、最简单的思路就是,从左界限开始,逐个判断是不是可自分数,直到右界限。

每个数判断的过程也很简单。如下述代码:

    bool dividable(int a){int b=a,t=0;while(b){t=b%10;if(t==0||a%t!=0)//如果出现某一位是0或者不整除的情况return false;b/=10;}return true;}vector<int> selfDividingNumbers(int left, int right) {vector<int>res;for(int i=left;i<=right;i++){if(dividable(i))res.push_back(i);}return res;}

代码十分简单,实测4ms,beats 100% of cpp submissions。

3、一些其他想法(不太重要):

其实最开始的时候,笔者对于上述做法,觉得应该会超时的,可能还得像输出质数那道题一样,能够生成的就不要用逐个判断。

因此在想一些条件,比如10以内的数,全都是可自分的。

比如十几的数,要逐个判断。

比如二十几的数,只需要判断22,24,26,28,因为要整除十位的2,需要个位是2的整数倍。

比如三十几的数,只需要判断33,36,39,因为要整除十位的3,需要个位是3的整数倍。

四十几,就只有44,48。

五十几,就只有55。六十几,66。七十几,77。八十几,88。九十几,99。

一百以上的,从111开始考虑(之前都带0),百位是1不需要考虑,后面的十位和个位,和两位数一样的判断逻辑。

二百以上的,还是可以推出一些规则,比如248,后面的十位和个位需要是百位数值2的整数倍。

但是整体来看这些规则未免有点复杂,所以最后笔者也就没有实现出来,在这里做一些想法记录。

同学们有其他想法的,欢迎在评论区留言!

转载于:https://www.cnblogs.com/chenjx85/p/9032909.html

leetcode-728-Self Dividing Numbers相关推荐

  1. Python 解leetcode:728. Self Dividing Numbers

    思路:循环最小值到最大值,对于每一个值,判断每一位是否能被该值整除即可,思路比较简单. class Solution(object):def selfDividingNumbers(self, lef ...

  2. 728. Self Dividing Numbers

    题目描述: A self-dividing number is a number that is divisible by every digit it contains. For example, ...

  3. LeetCode之Add Two Numbers

    LeetCode之Add Two Numbers 题目:You are given two linked lists representing two non-negative numbers. Th ...

  4. Leetcode 448. Find All Numbers Disappeared in an Array

    Leetcode  448. Find All Numbers Disappeared in an Array Add to List Description Submission Solutions ...

  5. LeetCode 445. Add Two Numbers II

    LeetCode 445. Add Two Numbers II Solution1:我的答案 利用了栈,这样就不用翻转链表了... /*** Definition for singly-linked ...

  6. 【注意】LeetCode 2. Add Two Numbers

    LeetCode 2. Add Two Numbers 这种沙比提怎么都写不对了??? Solution1:学习这种写法 /*** Definition for singly-linked list. ...

  7. C#LeetCode刷题之#728-自除数(Self Dividing Numbers)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3889 访问. 自除数 是指可以被它包含的每一位数除尽的数. 例如 ...

  8. LeetCode 445. Add Two Numbers II--面试算法题--C++,Python解法

    题目地址:Add Two Numbers II - LeetCode You are given two non-empty linked lists representing two non-neg ...

  9. LeetCode:2. Add Two Numbers

    https://leetcode.com/problems/add-two-numbers/description/ 内容描述 You are given two non-empty linked l ...

  10. [Leetcode] 445. Add Two Numbers II

    问题: https://leetcode.com/problems/add-two-numbers-ii/#/description 思路:该题与"415. Add Strings" ...

最新文章

  1. 官宣:程序员被纳入新生代农民工!
  2. 洛谷1522牛的旅行
  3. 在线考试计算机文化基础,计算机文化基础在线考试.pdf
  4. 前端请求,后台http 连接输出流交给ServeletResponse 下载文件
  5. Dapper操作MySQL数据库获取JSON数据中文乱码
  6. html5自动旋转图片,HTML5画布旋转图片
  7. Windows10-1909各个版本进行下载地址汇总
  8. 苹果官宣春季发布会!不止有iPhone SE 3,还有紫色iPhone 13 Pro?
  9. 一个博友的SQL问题解决过程
  10. c语言 extern_C语言入门笔记(三)
  11. 基于粒子群优化算法的函数寻优算法
  12. JavaScript案例分享+复盘——小米闪购界面
  13. 关于程序设计大赛环境部署的WBS图
  14. 提升计算机科学素养,中职学生计算机科学与技术专业素养提升策略
  15. Policy Center > Permissions and APIs that Access Sensitive Information
  16. 一刀工具箱 - 成语查询工具
  17. python多线程详解 Python 垃圾回收机制
  18. scrapy学习笔记——HTML页面解析
  19. 十四、51单片机之AD转换
  20. NSIS 之初体验 制作打印机i5100windows安装程序

热门文章

  1. 计算机任务驱动法教学应用,任务驱动教学法在计算机教学中的应用
  2. 井下三专两闭锁的内容_局部通风机三专两闭锁具体规定
  3. c语言while可以改为when,控制流:if、when、for、while
  4. java 生成.sh文件,Java 生成Bat或SH文件,调用Sqlldr安插数据到Oracle
  5. flask运行多个服务器,与Flask服务器同时运行while循环
  6. code标签无法渲染html,【菜鸟笔记】记一次django无法正常在ie和edge浏览器渲染html页面-站长资讯中心...
  7. java人力资源管理系统设计_人力资源管理系统——《Java Web程序设计》课程设计...
  8. mina mysql_Mina学习笔记(二)
  9. (3) Hibernate的查询 标准(Criteria)查询
  10. 计算机考研:计算机网络五大考点解析