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) 题目 语言 思 ...
最新文章
- linux 终端界面显示 中文乱码或方块
- 【正一专栏】俄罗斯世界杯来了——抽签概述
- java swt 双屏_Java中AWT、Swing与SWT三大GUI技术的原理与效率差异
- js+Css实现的一个简单对话框
- mysql5.6 mysqld safe_mysql程序之mysqld_safe详解
- 左右xcode的重构选项的一些理解
- 钉钉怎么设置考勤打卡规则
- [Linux]局域网设置-远程登录GDMSETUP
- POJ 1398 Complete the sequence! ★ (差分)
- 基于springboot的学生选课系统
- pandas导入导出数据
- VMware-workstation 密钥
- STM8S自学笔记-005 精准延时
- html设置了背景图片不显示,CSS设置背景图片不显示的解决方法
- 985高校计算机专业炉气分数,【原创】外地985高校专业录取分数解析(一)
- 有限域(3)——多项式环的商环构造有限域
- 达人评测 iPad Pro 2021怎么样
- 数据传输加密非对称加密算法以及对称算法-RSA+AES
- Python爬虫随笔:爬取iciba上的单词发音文件
- CUDA unknown error - this may be due to an incorrectly set up environment 问题解决