LeetCode728. 自除数(C++)
Posted 敲代码两年半的练习生
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode728. 自除数(C++)相关的知识,希望对你有一定的参考价值。
728. 自除数
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<int> selfDividingNumbers(int left, int right)
vector<int> 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 ;
;
以上是关于LeetCode728. 自除数(C++)的主要内容,如果未能解决你的问题,请参考以下文章