首页 > 编程语言 >【每周例题】力扣 c++ 自除数

【每周例题】力扣 c++ 自除数

时间:2024-03-24 16:22:36浏览次数:27  
标签:selfDividingNumbers right int c++ 力扣 vector 例题 除数 left

自除数

题目

 题目分析

1.这道题可以直接用暴力求解,动用for循环遍历从left到right的每个数,使用while判断是否为自除数。

2.满足自除数有两个要求:1.数位不能存在0;2.自除数除于数位为0;这里可以使用if语句进行判断。

3.由于自除数的数量位置,所以存储自除数可以采用容器或者数列来存储。

代码

#include<iostream>
#include<vector>
using namespace std;

vector<int> selfDividingNumbers(int left, int right)
{
	vector<int>show;
	for (int i = left; i <= right; i++)
	{
		int temp = i;
		bool estimate = true;
		while (temp != 0)
		{
			int t = temp % 10;
			if (t == 0 || i % t != 0)
			{
				estimate = false;
				break;
			}
			temp /= 10;
		}
		if (estimate)
		{
			show.push_back(i);
		}
	}
	return show;
}

int main()
{
	int left, right;
	cin >> left >> right;
	vector<int> result = selfDividingNumbers(left, right);
	for (int num : result)
	{
		cout << num << " ";
	}
	return 0;
}

下面是通过力扣测试的代码

class Solution {
public:
	vector<int> selfDividingNumbers(int left, int right) {
	vector<int>show;
	for (int i = left; i <= right; i++)
	{
	int temp = i;
	bool estimate = true;
	while (temp != 0)
	{
		int t = temp % 10;
		if (t == 0 || i % t != 0)
		{
			estimate = false;
			break;
		}
		temp /= 10;
	}
	if (estimate)
	{
		show.push_back(i);
	}
}
        return show;
	}
};    

  

标签:selfDividingNumbers,right,int,c++,力扣,vector,例题,除数,left
From: https://www.cnblogs.com/hcrzhi/p/18092585

相关文章

  • 【每周例题】力扣 c++ 各位相加
    各位相加题目各位相加 题目解析这个题目看似需要使用递归方法或者使用while循环进行求解,其实你只需要统计前三十个数就可以发现规律:  根据图表可知,除了数字0,其他数字各位相加的最后结果都是其数字对9取模。所以从这个结果可以得到以下代码代码#include<iostream>u......
  • 数据结构/C++:位图 & 布隆过滤器
    数据结构/C++:位图&布隆过滤器位图实现应用布隆过滤器实现应用哈希表通过映射关系,实现了O(1)的复杂度来查找数据。相比于其它数据结构,哈希在实践中是一个非常重要的思想,本博客将介绍哈希思想的两大应用,位图与布隆过滤器。位图看到以下题目:给40亿个无序不重......
  • C++创建异步任务
    namespaceCore{/***创建一个异步任务的包装函数,返回一个指向std::packaged_task的shared_ptr。**@tparamF函数类型*@tparamArgs参数类型*@paramf要执行的函数*@paramargs函数的......
  • C++共享之道:用extern实现源文件变量与类成员函数的巧妙共享
    概述:在C++中,使用`extern`关键字可实现在源文件之间共享变量与类成员函数。通过声明变量或类在头文件中,再在一个源文件中定义,其他源文件通过`extern`引用,促使模块化、可维护的代码组织。在C++中,extern关键字可用于在源文件之间共享变量。它告诉编译器某个变量的声明在其他源文......
  • 最长子字符串的长度(二)【华为OD机试JAVA&Python&C++&JS题解】
    一.题目-最长子字符串的长度(二)给你一个字符串s,字符串s首尾相连成一个环形,请你在环中找出’l’、‘o’、‘x’字符都恰好出现了偶数次最长子字符串的长度。输入描述:输入是一串小写的字母组成的字符串。输出描述:输出是一个整数补充说明:1<=s.length<=5x10^5......
  • 孙悟空吃蟠桃【华为OD机试JAVA&Python&C++&JS题解】
    一.题目-孙悟空吃蟠桃孙悟空爱吃蟠桃,有一天趁着蟠桃园守卫不在来偷吃。已知蟠桃园有N颗桃树,每颗树上都有桃子,守卫将在H小时后回来。孙悟空可以决定他吃蟠桃的速度K(个/小时),每个小时选一颗桃树,并从树上吃掉K个,如果树上的桃子少于K个,则全部吃掉,并且这一小时剩余的时间里不再......
  • C++学生信息管理 1.0记录
    C++学生信息管理1.0记录 该信息管理没有太多可支持的操作,仅有一些基础设置,后续优化中将添加更多功能。一.头文件引用和命名空间声明#include<iostream>//输入输出操作#include<string>//字符串操作usingnamespacestd;//为方便使用,不需要在cout,string等前方加......
  • C++:map&set 对红黑树的封装
    C++:map&set对红黑树的封装将红黑树封装为泛型Find接口迭代器insert接口map的operator[]接口总代码展示C++的STL库中,把红黑树封装为了两个容器map与set,本博客将基于红黑树,来实现map和set的封装。如果不了解红黑树,可见博客[数据结构/C++:红黑树]将红黑树封装为泛型......
  • 【每周例题】力扣 C++ 两数之和
    两数之和题目 题目分析1.返回两个数的下标和,第一反应可以是采用双for循环2.数组数值等于整数目标值,那就采用if判断,符合直接输出,跳出循环,避免输出多个答案3.由于力扣题目采用了容器,大家可以选择点击该链接了解:容器代码#include<iostream>#include<vector>usingnamesp......
  • 【每周例题】力扣 C++ 组合
    组合题目力扣组合 题目解析1.我们可以根据题目分析可知,题目所要求我们做的是:从1到n进行遍历,找出k个数组成小组合,再将小组合拼接在一起成为大组合输出。2.所以,根据题目,我们可以采用两个数组,一个一维数组temp,负责存储k个数,组为小组合,一个二维数组res,存储小组合,变为大组合。......