728. 自除数 题解

news2024/11/26 2:54:00

题目描述:728. 自除数 - 力扣(LeetCode)

自除数 是指可以被它包含的每一位数整除的数。

  • 例如,128 是一个 自除数 ,因为 128 % 1 == 0128 % 2 == 0128 % 8 == 0

自除数 不允许包含 0 。

给定两个整数 left 和 right ,返回一个列表,列表的元素是范围 [left, right] 内所有的 自除数 。

解题思路:

判断一个数是否是自除数:

利用取余操作符获得一个数的每一位,再用这个数除以获得每一个位,如果有一位不能被整除,这个数就不是自除数;反之,是自除数。

再利用循环就可以解答该题。

代码:

int* selfDividingNumbers(int left, int right, int* returnSize)
{
    int* arr = (int*)malloc(sizeof(int) * (right - left + 1));
    int j = 0;
    int count = 0;
    for (int i = left; i <= right; i++)
    {
        // 获得每一位数字,并判断
        int rem = i;
        int flag = 1;
        while (rem)
        {
            int temp = rem % 10;
            if (i % temp != 0)
                flag = 0;
            rem /= 10;
        }
        if (flag != 0)
        {
            arr[j++] = i;
            count++;
        }
    }
    *returnSize = count;
    return arr;
}

下面是我再解答这道题所犯的错误,读者可选择不看。

  • 第一个

int* selfDividingNumbers(int left, int right, int* returnSize)
{
    int* arr = (int*)malloc(sizeof(int) * (right - left + 1));
    int j = 0;
    int count = 0;
    for (int i = left; i <= right; i++)
    {
        // 获得每一位数字,并判断
        int rem = i;
        int flag = 1;
        while (i)
        {
            int temp = i % 10;
            if (rem % temp != 0)
                flag = 0;
            i /= 10;
        }
        if (flag != 0)
        {
            arr[j] = rem;
            j++;
            count++;
        }
    }
    *returnSize = count;
    return arr;
}

代码中的错误在于 while (i) 的循环条件。你在外层的 for 循环中使用了 i,而在内层的 while 循环中再次使用了 i。这导致了 for 循环中的 i 在内层循环中被改变,进而影响了外层的循环。

你应该在内层的 while 循环中使用另一个变量来保存数字的副本,而不是直接修改循环变量 i

  • 第二个

这个错误的原因是,我在 i % temp != 0 中没有考虑到 temp 可能为0的情况。当 temp 为0时,会导致整数除以0的异常,因此需要在判断条件中加入 temp == 0 的判断,以避免出现除以0的情况。

具体来说,当 temp 为0时,应该跳过检查,因为整数除以0是非法的操作。这就是为什么你需要在判断条件中包括 temp == 0 的原因。

所以,在判断是否是自除数的部分,应该将条件改为 temp == 0 || i % temp != 0,这样可以避免出现除以0的异常情况。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/903832.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VCS与Verdi联仿,简要万能工程模板,持续更新中...

VCS与Verdi联仿&#xff0c;简要工程模板&#xff0c;持续更新中… 文章目录 VCS与Verdi联仿&#xff0c;简要工程模板&#xff0c;持续更新中...背景编写工程模块使用工程模板仿真结果工程下载地址 背景 学习verilog&#xff0c;故用vcs来编译verilog&#xff0c;用verdi来查…

一篇文章了解编译类成员定义

文章目录 一篇文章了解编译类成员定义 %Dictionary.CompiledClass - 编译类定义表简介索引示例表结构 %Dictionary.CompiledConstraint - 编译约束表简介索引示例表结构 %Dictionary.CompiledConstraintMethod - 编译约束表简介索引示例表结构 %Dictionary.CompiledForeignKey …

通过docker-Compose快速搭建OwnCloud网盘

目录 docker-compose文件信息 nginx文件信息 证书生成 查看文件有哪些&#xff01;&#xff01;&#xff01; 在 .yml 文件目录运行 查看容器情况并访问网页 当然&#xff0c;以下是一个使用 MySQL 5.7、Nginx 和 ownCloud 的完整 Docker Compose 示例&#xff0c;同时启用…

《Zookeeper》源码分析(十六)之 Leader是如何运行的

目录 Leader创建Leader实例lead() Leader Leader选举结束后&#xff0c;成为leader的服务器开始进行leader的工作&#xff0c;过程如下&#xff1a; 从源码中看出&#xff0c;第一步先创建Leader实例&#xff0c;第二步调用Leader.lead()方法&#xff0c;Leader的所有工作都…

【ElasticSearch】一键安装ElasticSearch与Kibana以及解决遇到的问题

目录 一、安装ES 二、安装Kibana 三、遇到的问题 一、安装ES 按顺序复制即可 docker network create es-net # 创建网络 docker pull images:7.12.1 # 拉取镜像 mkdir -p /root/es/data # 创建数据卷 mkdir -p /root/es/plugins # 创建数据卷 chmod 777 /root/es/** # 设置权…

Ubuntu20.04搭建OpenGL环境(glfw+glad)

Ubuntu20.04搭建OpenGL环境(glfwglad) Linux环境搭建 本文在VMware安装Ubuntu20.04桌面版的环境下搭建OpenGL&#xff0c;按照本文搭建完成后可以执行LearnOpenGL网站上的demo。 关于VMware可自行到VMware Workstation Pro | CN下载 关于Ubuntu20.04桌面版可自行到官网或In…

MNIST手写数字数据集+7000张图片下载

MNIST手写数字图像数据集是一个经典的用于图像分类任务的数据集&#xff0c;其中包含了大量的手写数字图像样本 数据集点击下载&#xff1a; MNIST手写数字数据集7000张图片.rar

【MySQL】好好学习一下InnoDB中的页

文章目录 一. 前言二. 从宏观层面看页三. 页的基本内容3.1 页的数据结构3.2 用户空间内的数据行结构3.3 页目录 四. 问题集4.1 索引 和 数据页 有什么区别4.2 页的大小是什么决定的4.3 页的大小对哪些情况有影响4.4 一般情况下说的链表有哪几个4.5 如果页的空间满了怎么办4.6 如…

微服务中间件--Ribbon负载均衡

Ribbon负载均衡 a.Ribbon负载均衡原理b.Ribbon负载均衡策略 (IRule)c.Ribbon的饥饿加载 a.Ribbon负载均衡原理 1.发起请求http://userservice/user/1&#xff0c;Ribbon拦截该请求 2.Ribbon通过EurekaServer拉取userservice 3.EurekaServer返回服务列表给Ribbon做负载均衡 …

线性代数的学习和整理9(草稿-----未完成)

3.3 特征值和特征向量是什么&#xff1f; 直接说现在&#xff1a;特征向量这个块往哪个方向进行了拉伸&#xff0c;各个方向拉伸了几倍。这也让人很容易理解为什么&#xff0c;行列式的值就是特征值的乘积。 特征向量也代表了一些良好的性质&#xff0c;即这些线在线性变换后…

[LeetCode111双周赛LeetCode359周赛] DP双指针

参考灵神和闫总的讲解和代码&#xff1a; https://www.bilibili.com/video/BV1rP411s7Z5 https://space.bilibili.com/206214 7006. 销售利润最大化 https://leetcode.cn/problems/maximize-the-profit-as-the-salesman/ Solution 动态规划 哈希表 首先按照 end 的顺序分…

UGUI可视化组件Image, RawImage

一.组件Image 1.1 Image的属性 创建的Image对象自带Image组件&#xff0c;用来显示图片&#xff0c;其属性说明如下 属性&#xff1a;功能&#xff1a;Source Image表示要显示的图像的纹理&#xff08;必须作为精灵导入&#xff09;。Color要应用于图像的颜色&#xff0c;会和…

Vs code 使用中的小问题

1.Java在Vs code 中使用单元测试失败或者如何使用单元测试 创建Java项目&#xff0c;或者将要测试的文件夹添加进工作区 要出现lib包&#xff0c;并有两个测试用的jar包 编写测试文件 public class TestUnit{ public static void main(String[] args) {String str "…

伺服电机入门01

伺服电机入门01 伺服电机 电机编码器&#xff0c;电机闭环 电机 &#xff1a; pmsm bldc 有刷电机 acim电机 步进电机等&#xff0c; 编码器&#xff1a;绝对编码器和增量编码器等 编码器入门&#xff1a; 信号&#xff1a; 总线信号 RS422 RS485 基础上面的总线方式 以下面…

TouchGFX之LTDC显示屏

1.根据原理图配置LTDC的GPIO&#xff08;接线方式为RGB565&#xff09;

在线SHA1计算哈希(不可逆的加密又称摘要)工具

具体请前往&#xff1a; 在线计算Sha1摘要工具

图像特征提取与描述

目录 Harris和Shi-Tomas算法Harris角点检测优缺点 Shi-Tomasi⻆点检测SIFT算法 Harris和Shi-Tomas算法 Harris角点检测 dstcv2.cornerHarris(src,blockSize,ksize,k)优缺点 Shi-Tomasi⻆点检测 cornerscv2.goodFeaturesToTrack(image,maxCorners,qualityLevel,minDistance)S…

依赖预构建与静态资源处理

依赖预构建 vite是一个基于浏览器原生ES-Module的前端构建工具。 当你首次启动vite的时候&#xff0c;vite会在本地加载你的站点之前预构建项目依赖。 原因&#xff1a; CommonJS和UMD兼容性&#xff1a;在开发阶段中&#xff0c;Vite的开发服务器将所有的代码视为原生ES模块。…

湘大 XTU OJ 1345 素数字符串 题解:欧拉筛法 前缀和 ‘\0‘ sprintf

链接 素数字符串 题目 题目描述 我们将素数从小到大依次书写&#xff0c;可以得到一个字符串"23571113⋯"&#xff0c;已知一个数码d(0≤d≤9),求字符串在区间[L,R]之间的多少个d? 输入 第一行是一个整数T(1≤T≤10000)&#xff0c;表示样例的个数。 每个样例…

Next.js 13 你需要了解的 8 件事

目录 React 服务器组件 &#xff08;RSC&#xff09;服务器组件默认开启在 Next.js 中客户端组件也在服务器上呈现&#xff01;组成客户端和服务器组件编译Next.js 13 渲染模式桶文件有点坏了库集成&#xff1a;WIP 仍在进行中Route groups 路由组总结 在本文中&#xff0c;我们…