|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 糖逗 于 2020-5-8 17:50 编辑
题目描述:
- 自除数 是指可以被它包含的每一位数除尽的数。
- 例如,128 是一个自除数,因为 128 % 1 == 0,128 % 2 == 0,128 % 8 == 0。
- 还有,自除数不允许包含 0 。
- 给定上边界和下边界数字,输出一个列表,列表的元素是边界(含边界)内所有的自除数。
- 示例 1:
- 输入:
- 上边界left = 1, 下边界right = 22
- 输出: [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 15, 22]
- 注意:
- 每个输入参数的边界满足 1 <= left <= right <= 10000。
- 来源:力扣(LeetCode)
- 链接:https://leetcode-cn.com/problems/self-dividing-numbers
- 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
复制代码
- #include<vector>
- #include<iostream>
- using namespace std;
- bool valid(int i){
- int n=i;
- while(i)
- {
- int temp=i%10;
- if(temp==0 || n%temp!=0)
- return false;
- i=i/10;
- }
- return true;
- }
- vector<int> solution(int left, int right) {
- vector<int> res;
- for(int i = left; i <= right; i++){
- if(valid(i)) res.push_back(i);
- }
- return res;
- }
- int main(void){
- int left, right;
- while(cin >> left >> right){
-
- }
- vector<int> res = solution(left, right);
- for(int i = 0; i < res.size(); i++){
- cout << res[i] << endl;
- }
- return 0;
- }
复制代码
注意事项:
1.本题的核心在于valid这个函数上。 |
|