C#LeetCode刷题之#728-自除数(Self Dividing Numbers)
问题
该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/3889 访问。
自除数 是指可以被它包含的每一位数除尽的数。
例如,128 是一个自除数,因为 128 % 1 == 0,128 % 2 == 0,128 % 8 == 0。
还有,自除数不允许包含 0 。
给定上边界和下边界数字,输出一个列表,列表的元素是边界(含边界)内所有的自除数。
输入: 上边界left = 1, 下边界right = 22
输出: [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 15, 22]
注意:每个输入参数的边界满足 1 <= left <= right <= 10000。
A 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 == 0, 128 % 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.
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.
示例
该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/3889 访问。
public class Program {public static void Main(string[] args) {var left = 1;var right = 21;var res = SelfDividingNumbers(left, right);ShowArray(res);left = 3;right = 36;res = SelfDividingNumbers2(left, right);ShowArray(res);Console.ReadKey();}private static void ShowArray(IList<int> array) {foreach(var num in array) {Console.Write($"{num} ");}Console.WriteLine();}private static IList<int> SelfDividingNumbers(int left, int right) {var res = new List<int>();for(var i = left; i <= right; i++) {if(IsSelfDividingNumber(i)) res.Add(i);}return res;}private static bool IsSelfDividingNumber(int num) {//用字符串索引取位var length = num.ToString().Length;for(var i = 0; i < length; i++) {var bit = int.Parse(num.ToString()[length - i - 1].ToString());if(bit == 0 || num % bit != 0) return false;}return true;}private static IList<int> SelfDividingNumbers2(int left, int right) {var res = new List<int>();for(var i = left; i <= right; i++) {if(IsSelfDividingNumber2(i)) res.Add(i);}return res;}private static bool IsSelfDividingNumber2(int num) {//用传统取余式取位var number = num;while(number > 0) {var bit = number % 10;if(bit == 0 || num % bit != 0) return false;number /= 10;}return true;}}
以上给出2种算法实现,以下是这个案例的输出结果:
该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/3889 访问。
1 2 3 4 5 6 7 8 9 11 12 15
3 4 5 6 7 8 9 11 12 15 22 24 33 36
分析:
显而易见,以上2种算法的时间复杂度均为: 。
C#LeetCode刷题之#728-自除数(Self Dividing Numbers)相关推荐
- LeetCode刷题实战(2):Add Two Numbers
题2描述: 2 Add Two Numbers 29.10% Medium You are given two non-empty linked lists representing two non- ...
- C#LeetCode刷题-数学
数学篇 # 题名 刷题 通过率 难度 2 两数相加 29.0% 中等 7 反转整数 C#LeetCode刷题之#7-反转整数(Reverse Integer) 28.6% 简单 8 字符串转整数 (a ...
- LeetCode刷题记录4——67. Add Binary(easy)
LeetCode刷题记录4--67. Add Binary(easy) 目录 LeetCode刷题记录4--67. Add Binary(easy) 题目 语言 思路 后记 题目 今天这题是与字符串相 ...
- LeetCode刷题记录15——21. Merge Two Sorted Lists(easy)
LeetCode刷题记录15--21. Merge Two Sorted Lists(easy) 目录 LeetCode刷题记录15--21. Merge Two Sorted Lists(easy) ...
- LeetCode刷题记录14——257. Binary Tree Paths(easy)
LeetCode刷题记录14--257. Binary Tree Paths(easy) 目录 前言 题目 语言 思路 源码 后记 前言 数据结构感觉理论简单,实践起来很困难. 题目 给定一个二叉树, ...
- LeetCode刷题记录13——705. Design HashSet(easy)
LeetCode刷题记录13--705. Design HashSet(easy) 目录 LeetCode刷题记录13--705. Design HashSet(easy) 前言 题目 语言 思路 源 ...
- LeetCode刷题记录12——232. Implement Queue using Stacks(easy)
LeetCode刷题记录12--232. Implement Queue using Stacks(easy) 目录 LeetCode刷题记录12--232. Implement Queue usin ...
- LeetCode刷题记录11——290. Word Pattern(easy)
LeetCode刷题记录11--290. Word Pattern(easy) 目录 LeetCode刷题记录11--290. Word Pattern(easy) 题目 语言 思路 源码 后记 题目 ...
- LeetCode刷题记录10——434. Number of Segments in a String(easy)
LeetCode刷题记录10--434. Number of Segments in a String(easy) 目录 LeetCode刷题记录9--434. Number of Segments ...
- LeetCode刷题记录9——58. Length of Last Word(easy)
LeetCode刷题记录9--58. Length of Last Word(easy) 目录 LeetCode刷题记录9--58. Length of Last Word(easy) 题目 语言 思 ...
最新文章
- HTML基础第七讲---框架
- 移动端图片上传旋转、压缩的解决方案
- poj 3204 Ikki's Story I - Road Reconstruction
- 正则表达式的一点奇怪
- webstorm如何自动换行_怎样在word中自动生成目录
- android 蓝牙通讯实现手机蓝牙的开启,并扫描附近可见的蓝牙设备
- php curl 采集文件,curl获取远程文件内容
- 电视盒子ADB常用命令
- 基于python mediapipe的视频或者图片更换背景
- 分享一个超nice的数据分析实战案例, “手把手”教学,收藏等于学会
- Day14 常用API
- 伏地魔爱上林黛玉?就没有B站不能组的CP!
- 关于前端开发中的模块化理解
- FCM算法原理及matlab实现
- 16丨数据分析基础篇答疑
- fudge函数C语言,C语言程序设计-中国大学mooc-题库零氪
- 学习笔记(1):PR快速入门-认识界面
- 记一次关于App页面响应时间的测试
- MySQL查询之索引
- Revit二次开发_获取视图样式替换