蓝桥杯刷题--幸运数字

devtools/2024/10/18 2:59:58/

幸运数字

        题目:

        解析:

        我们由题目可以知道,某个进制的哈沙德数就是该数和各个位的和取整为0.然后一个幸运数字就是满足所有进制的哈沙德数之和.然后具体就是分为以下几个步骤

        1. 我们先写一个方法,里面主要是用来判断,这个数在该进制下是否是哈沙德数

        2. 我们在main方法里面调用这个方法,来判断分别在二进制,十进制,八进制,十六进制的情况下的哈沙德数,然后我们取交集,取交集的写法我们直接可以用&&操作把上面的判断放在一个if里面进行判断.

        3.我们找的是第2023个,因此我们需要在2的步骤上加上一个循环,并且进行计数,如果满足2,那么计数就进行++,我们直到要找到第2023个数位置,因此我们可以把这个作为突破口,把它当成结束循环的条件.

package 幸运数字;
//哈沙德数就是在某个固定的进位制中,可以被各位的数字之和整除的正整数
//幸运数字就是分别满足十进制,二进制,八进制,十六进制的哈沙德数
//我们求第2023个
public class Test {public static void main(String[] args) {int count = 0;//TODO 2. 我们在main方法里面调用这个方法,来判断分别在二进制,十进制,八进制,十六进制的情况下的哈沙德数,然后我们取交集,取交集的写法我们直接可以用&&操作把上面的判断放在一个if里面进行判断.for (int i = 1; ; i++) {if (jud(i, 10) && jud(i, 2) && jud(i, 8)&& jud(i, 16)) {count++;}//TODO 3. 我们要找到第2023个,那么就在第2023个进行输出并结束循环即可if (count == 2023) {System.out.print(i);break;}}}//TODO 1.我们先写一个方法,里面主要是用来判断,这个数在该进制下是否是哈沙德数static boolean jud(int num, int base) {int initial = num;int sum = 0;while (num > 0) {
//            while (num/base != 0)sum = sum + num % base;num = num / base;}return initial % sum == 0;}
}

重点:

学会实现不同进制的哈沙德数的判断,里面就有取出各个位的操作

我们举个例子:如果是123,我们以十进制为例子,我们先取余得到第一位,123%10 = 3,然后我们要取出第二位的话要先通过取整操作,123/10=12,然后我们再对12进行取余操作,12%10=2,依次取出每一位,然后把每一位相加,判断条件,我测试了一下,一开始我写的是num/10!=0,如果我们num一开始就是1的话,我们根本就进不去这个循环,并且后续会出现算数异常,我们以num>0作为条件的依据,我认为,num再怎么取整也不可能位负数,然后为什么不能等于0呢?如果为0的话,那么就会陷入死循环了,num/10==0,这个会导致死循环,

在这个代码里面,我们值得学习的是它这个循环的终止条件

我们不知道到底什么时候是2023个满足上述所有条件的数字,因此我们的for循环里面的i的判断条件不能确定到第多少个,因此我们可以先省略,然后设置个计数器count,每当我们if判断条件满足的时候,我们就让count++,直到count等于2023为止,说明我们找到了第2023个幸运数字,然后我们打印它再进行break进行破除即可.


http://www.ppmy.cn/devtools/125176.html

相关文章

Ubuntu安装 MySQL【亲测有效】

在Ubuntu上安装MySQL数据库的步骤通常包括更新软件包列表、安装MySQL服务器、启动并配置MySQL服务等。以下是一个详细的安装指南: 一、更新软件包列表 首先,打开终端并输入以下命令来更新Ubuntu的软件包列表: sudo apt update二、安装MySQ…

大健康零售电商的智囊团:知识中台的应用与影响

在数字化浪潮席卷各行各业的今天,大健康零售电商行业也在积极探索转型升级的新路径。知识中台,作为一种集知识管理、数据挖掘与智能化应用于一体的新型技术架构,正逐渐成为推动这一转型的关键力量。本文将深入探讨知识中台在大健康零售电商中…

CW32L010安全低功耗MCU,树立M0+产品行业新标杆!

2024年9月26日,武汉芯源半导体CW32L010系列产品正式官方发布。这款产品以其卓越的产品性能,迅速在业界引起了广泛关注,并成功树立M0产品行业的新标杆。 CW32L010系列产品是基于 eFlash 的单芯片低功耗微控制器,集成了主频高达 48M…

Nginx UI 一个可以管理Nginx的图形化界面工具

Nginx UI 是一个基于 Web 的图形界面管理工具,支持对 Nginx 的各项配置和状态进行直观的操作和监控。 Nginx UI 的功能非常丰富: 在线查看服务器 CPU、内存、系统负载、磁盘使用率等指标 在线 ChatGPT 助理 一键申请和自动续签 Let’s encrypt 证书 在…

260. 只出现一次的数字 III

260. 只出现一次的数字 III 题目含义:有一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次,我们需要返回只出现一次的两个元素。 根据部分元素出现两次的情况,我们可以用异或运算 ⊕ \oplus ⊕…

MySQL UDF提权原理

文章目录 前言一、MySQL架构二、什么是UDF三、UDF提权原理四、MSF实战参考 前言 看了许多视频和文章,对UDF提权讲得都不是很清楚,遂搜索了一下MySQL的基础知识,总结了一下,供各位初学的师傅参考。 一、MySQL架构 首先&#xff…

【CSS】flex: 1; 的意思

在 Flexbox 布局中,flex: 1; 是一个简写属性,它表示弹性容器中的子元素如何分配可用空间。flex: 1 意味着该元素可以根据剩余的空间进行扩展,占据相应的比例。具体来说,flex: 1; 是 flex-grow、flex-shrink 和 flex-basis 这三个属…

主流显卡和 CPU 进行 Whisper 转录性能 RTF 转录时间估算

使用不同显卡和 CPU 进行 Whisper 转录性能测试:详细 RTF 估算 Whisper 是一个强大的开源音频转录工具,但在不同硬件上,转录的速度可能相差甚远。本文将对常见的显卡和 CPU 进行分析,估算其 RTF(Real Time Factor&…