蓝桥杯刷题--幸运数字

幸运数字

        题目:

        解析:

        我们由题目可以知道,某个进制的哈沙德数就是该数和各个位的和取整为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.rhkb.cn/news/445674.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在centos(ubuntu)中如何通过预构建二进制文件安装nodejs

首先去Node.js下载你说需要的版本的预构建二进制文件Node.js — 下载 Node.js 在CentOs或Ubuntu离线服务器上安装Node.js,你可以通过下载Node.js的预构建二进制文件来完成。以下是具体步骤: 获取Node.js预构建二进制文件: 在有网络连接的机器…

spring boot 项目配置文件

第一种properties文件(自带基础) 新建项目是会在resources目录下默认properties文件 第二种yml文件(常用) 格式类型:spring boot支持3种配置文件,分别是xx.properties,xx.yaml,xx.yml;同一个项目若配置这3种…

【动物识别系统】Python+卷积神经网络算法+人工智能+深度学习+机器学习+计算机课设项目+Django网页界面

一、介绍 动物识别系统。本项目以Python作为主要编程语言,并基于TensorFlow搭建ResNet50卷积神经网络算法模型,通过收集4种常见的动物图像数据集(猫、狗、鸡、马)然后进行模型训练,得到一个识别精度较高的模型文件&am…

每日一题|3158. 求出出现两次数字的 XOR 值|哈希

题目给的范围很小,50以内,所以什么数据结构都可以。 这里采用set来维护访问过的数字,利用哈希来提升时间效率。 class Solution:def duplicateNumbersXOR(self, nums: List[int]) -> int:visited set()l []res 0for i in nums:if i i…

《机器学习与数据挖掘综合实践》实训课程教学解决方案

一、引言 随着信息技术的飞速发展,人工智能已成为推动社会进步的重要力量。作为人工智能的核心技术之一,机器学习与数据挖掘在各行各业的应用日益广泛。本方案旨在通过系统的理论教学、丰富的实践案例和先进的实训平台,帮助学生掌握机器学习…

【C++堆(优先队列)】1882. 使用服务器处理任务|1979

本文涉及知识点 C堆(优先队列) LeetCode1882. 使用服务器处理任务 给你两个 下标从 0 开始 的整数数组 servers 和 tasks ,长度分别为 n​​​​​​ 和 m​​​​​​ 。servers[i] 是第 i​​​​​​​​​​ 台服务器的 权重 ,而 tasks[j] 是处理…

[Linux] Linux 进程程序替换

标题:[Linux] Linux 进程程序替换 个人主页水墨不写bug (图片来源于网络) 目录 O、前言 一、进程程序替换的直观现象(什么是进程程序替换?) 二、进程程序替换的原理 三、进程程序替换的函数&#xff08…

rpc中常用的数据格式:Protobuf 图文详解

概述 protobuf也叫protocol buffer,是google 的一种数据交换的格式,它跨语言、跨平台。可以实现多种语言文件的数据传输实现(java、c#、c、go 和 python 等),如一个cpp程序和一个python程序的数据传输。 由于它是一种…

【AI绘画】Midjourney进阶:三分线构图详解

博客主页: [小ᶻZ࿆] 本文专栏: AI绘画 | Midjourney 文章目录 💯前言💯什么是构图为什么Midjourney要使用构图 💯三分线构图特点使用场景提示词书写技巧测试 💯小结 💯前言 【AI绘画】Midjourney进阶&a…

D35【python 接口自动化学习】- python基础之输入输出与文件操作

day35 文件合并 学习日期:20241012 学习目标:输入输出与文件操作﹣-47 如何使用python合并多个文件? 学习笔记: 合并文件需求分析 合并两个文件 代码实现 # 合并两个文件 with open(demo1.txt) as f1:file_data_1f…

Django学习笔记之Django基础学习

Django笔记 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录…

Solidity基础语法

Solidity的在线编辑器:https://remix.ethereum.org/ 一、合约结构 1、SPDX许可标识:指定代码的开源许可 2、pragma指令:声明Solidity版本 3、导入语句:引入其他合约或库 4、合约声明:使用contract关键字 5、状态变量&…

C#自定义特性

特性的用处 一般用来影响某一个类的个别字段或者方法 定义特性 需要将类继承Attribute 可以通过构造函数的方式影响使用特性的方法 可以通过给自定义的特性通过加AttributeUsage特性的方法进行进一步管理 AttributeUsage特性默认传三个参数 第一个参数一般用来约束此自定义…

黑马程序员 javaWeb基础学习,精细点复习【持续更新】

文章目录 WEB开发一、HTML1.html介绍 二、CSS1.CSS介绍2.CSS导入方式3.CSS选择器4.CSS属性 三、JavaScript1.介绍2.浏览器3.js的三种输出方式4.js定义变量5.js数据类型6.js运算符7.全局函数8.函数定义9.js数组对象10.js正则对象11.字符串对象12.自定义对象13.BOM浏览器对象模型…

电脑无线网wifi和有线网同时使用(内网+外网同时使用)

一、要求 我这里以无线网wifi为外网,有线网卡为内网为例: 一、基本信息 无线wifi(外网):ip是192.168.179.235,网关是192.168.179.95有线网(内网):ip是192.168.10.25&…

系统思考与业务创新工作坊

圆满结束两天的新华三《系统思考与业务创新工作坊》项目!在这次工作坊中,我们不仅深入探讨了如何通过系统思维看清复杂的业务全貌,还一起探索了创新背后的逻辑与突破口。 系统思考不是一时的灵感,而是一种持久的思维模式&#xff…

折叠翼弹射无人机产品技术详解

折叠翼无人飞行器系统采用储存、运输、发射一体化设计,飞行器平台可以折叠入筒,采用筒式气体弹射方式发射,其搭载可见光/红外双光载荷与战斗部,可以对敌方中大型坦克、装甲或防御工事进行打击。产品技术详解如下: 一、…

无人机之视觉技术篇

一、视觉传感器的类型 摄像头: 最常见的视觉传感器,能够捕捉可见光图像和视频。 通过单目、双目或多目摄像头的组合,无人机能够实现立体视觉,从而估算距离、深度,并进行物体识别和追踪。 红外传感器: …

推荐几本编程入门书目

对于编程入门,推荐以下几本书籍,这些书籍覆盖了不同的编程语言,适合零基础的学习者逐步掌握编程基础: 1. 《Python编程快速上手——让繁琐工作自动化》 特点:以简单易懂的方式介绍了Python的基础知识和编程概念&#…

UE5 使用Animation Budget Allocator优化角色动画性能

Animation Budget Allocator是UE内置插件,通过锁定动画系统所占CPU的预算,在到达预算计算量时对动画进行限制与优化。 开启Animation Budget Allocator需要让蒙皮Mesh使用特定的组件,并进行一些编辑器设置即可开启。 1.开启Animation Budget…