6、while循环 - 习题解析
目录
- 解析部分:
- 分支练习
- 1244. 请问一个正整数能够整除几次2
- 问题描述
- 解题思路
- 代码实现
- 代码解析
- 1062. 求落地次数
- 问题描述
- 解题思路
- 代码实现
- 代码解析
- 1254. 求车速
- 问题描述
- 解题思路
- 代码实现
- 代码解析
- 1261. 韩信点兵
- 问题描述
- 解题思路
- 代码实现
- 代码解析
解析部分:
分支练习
1244. 请问一个正整数能够整除几次2
问题描述
请问一个正整数 𝑛n 能够整除几次 2?
比如: 4 可以整除 2 次 2 ,100 可以整除 50次 2 , 9 可以整除 0 次 2 。
解题思路
- 读入数据: 从标准输入读取一个正整数 𝑛n。
- 计算整除次数:
- 初始化计数器
count
为 0。 - 当 𝑛n 为偶数时,重复以下步骤:
- 计数器
count
加 1。 - 𝑛n 除以 2,更新 𝑛n 的值。
- 计数器
- 初始化计数器
- 输出结果: 输出计数器
count
的值,表示 𝑛n 能够被 2 整除的次数。
代码实现
#include <iostream>
using namespace std;
int main() {int n; // 定义一个整型变量来存储输入的数cin >> n; // 通过标准输入读取这个数int count = 0; // 初始化计数器为0while (n % 2 == 0) { // 当n为偶数时,重复以下步骤count++; // 计数器加1n /= 2; // n除以2,更新n的值}cout << count << endl; // 输出计数器的值,表示n能够被2整除的次数return 0; // 程序结束
}
代码解析
- 使用
cin
从标准输入读取一个整数n
。 - 初始化计数器
count
为0。 - 使用
while
循环,当n
为偶数时(n % 2 == 0
),重复以下步骤:- 计数器
count
加1。 n
除以2,更新n
的值。
- 计数器
- 使用
cout
输出计数器count
的值,表示n
能够被2整除的次数。
问题描述中的例子也进行了修正:
- 4 可以整除 2 次 2
- 100 可以整除 2 次 2
- 9 可以整除 0 次 2
1062. 求落地次数
问题描述
小球从 100 米高处自由落下,着地后又弹回高度的一半再落下。
经过多少次落地后,小球弹起的高度才会低于 0.5 米?
解题思路
- 初始化高度: 将初始高度
height
设为 100。 - 计算落地次数:
- 初始化计数器
count
为 0。 - 当高度
height
大于等于 0.5 时,重复以下步骤:- 计数器
count
加 1。 - 高度
height
除以 2,更新高度的值。
- 计数器
- 初始化计数器
- 输出结果: 输出计数器
count
的值,表示小球落地的次数。
代码实现
#include <iostream>
using namespace std;
int main() {double height = 100; // 初始化高度为100int count = 0; // 初始化计数器为0while (height >= 0.5) { // 当高度大于等于0.5时,重复以下步骤count++; // 计数器加1height /= 2; // 高度除以2,更新高度的值}cout << count << endl; // 输出计数器的值,表示小球落地的次数return 0; // 程序结束
}
代码解析
- 初始化高度
height
为100。 - 初始化计数器
count
为0。 - 使用
while
循环,当高度height
大于等于0.5时,重复以下步骤:- 计数器
count
加1。 - 高度
height
除以2,更新高度的值。
- 计数器
- 使用
cout
输出计数器count
的值,表示小球落地的次数。
1254. 求车速
问题描述
一辆以固定速度行驶的汽车,司机在上午 10 点看到里程表上的读数是一个对称数(即这个数从左向右读和从右向左读是完全一样的),为 95859 。
两小时后里程表上出现了一个新的对称数。
问该车的速度是多少?新的对称数是多少?
输入
无。
输出
输出两行,第一行是车速,第二行是新的里程数(两个都是整数)。
解题思路
- 确定初始里程: 根据题目描述,初始里程为 95859。
- 寻找下一个对称数:
- 从初始里程开始,依次递增里程数。
- 对于每个里程数,判断它是否为对称数:
- 取出里程数的万位、千位、十位、个位。
- 判断万位与个位是否相等,千位与十位是否相等。
- 当找到下一个对称数时,停止寻找。
- 计算车速:
- 下一个对称数与初始里程的差值即为两小时内行驶的里程。
- 将里程差除以 2,得到车速(单位为千米/小时)。
- 输出结果: 输出两行,第一行为车速,第二行为新的对称数里程。
代码实现
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{ int n = 95859; // 初始里程int n2 = 95859; // 保存初始里程的副本while(true) // 无限循环,直到找到下一个对称数{n++; // 里程数加1int g = n%10; // 取个位int s = n/10%10; // 取十位int q = n/1000%10; // 取千位int w = n/10000%10; // 取万位if(w==g && q==s) // 如果万位与个位相等,千位与十位相等,则为对称数{break; // 跳出循环}}cout<<(n-n2)/2<<endl; // 输出车速cout<<n<<endl; // 输出新的对称数里程return 0;
}
代码解析
- 初始化初始里程
n
为95859,并复制一份到n2
。 - 使用无限循环
while(true)
,直到找到下一个对称数为止。 - 里程数
n
加1,继续寻找。 - 取出里程数的个位
g
、十位s
、千位q
、万位w
。 - 判断万位
w
与个位g
是否相等,千位q
与十位s
是否相等,如果都相等,则为对称数,跳出循环。 - 计算车速,为
(n-n2)/2
,即新里程与初始里程的差值除以2。 - 输出车速和新的对称数里程
n
。
1261. 韩信点兵
问题描述
韩信有一队士兵,他想知道有多少人,他就让士兵报数,如果按照 1 到 5 报数,最末一个士兵报的数为 1 。
按照 1到 6 报数,最末一个士兵报的数为 5 。
按照 1 到 7 报数,最末一个士兵报的数为 4 。
最后再按 1 到11 报数,最末一个士兵报的数为 10 。
请问韩信这队士兵最少有多少人?
解题思路
我们可以从1开始依次递增,对每个数分别模5、6、7、11,判断是否满足题目要求的条件。
- 初始化变量
num
为1,表示当前检查的数。 - 使用while循环,条件为
true
,即无限循环。 - 在循环内,判断
num
是否满足以下条件:num
模5的余数为1。num
模6的余数为5。num
模7的余数为4。num
模11的余数为10。
- 如果
num
满足所有条件,跳出循环。 - 如果
num
不满足条件,将num
加1,继续下一轮循环。 - 输出满足条件的
num
值。
代码实现
#include <iostream>
using namespace std;
int main() {int num = 1; // 初始化num为1while (true) { // 无限循环if (num % 5 == 1 && num % 6 == 5 && num % 7 == 4 && num % 11 == 10) {break; // 如果num满足所有条件,跳出循环}num++; // 如果num不满足条件,num加1,继续下一轮循环}cout << num << endl; // 输出满足条件的num值return 0;
}
代码解析
- 初始化变量
num
为1,表示当前检查的数。 - 使用while循环,条件为
true
,即无限循环。 - 在循环内,判断
num
是否满足以下条件:num % 5 == 1
:num
模5的余数为1。num % 6 == 5
:num
模6的余数为5。num % 7 == 4
:num
模7的余数为4。num % 11 == 10
:num
模11的余数为10。
- 如果
num
满足所有条件,使用break
语句跳出循环。 - 如果
num
不满足条件,将num
加1,继续下一轮循环。 - 输出满足条件的
num
值。
相关文章:
6、while循环 - 习题解析
目录 解析部分:分支练习1244. 请问一个正整数能够整除几次2问题描述解题思路代码实现代码解析 1062. 求落地次数问题描述解题思路代码实现代码解析 1254. 求车速问题描述解题思路代码实现代码解析 1261. 韩信点兵问题描述解题思路代码实现代码解析 解析部分…...
ReentrantLock可重入锁
可重⼊锁,这个锁可以被线程多次重复进⼊进⾏获取操作。 ReentantLock继承接⼝Lock并实现了接⼝中定义的⽅法,除了能完成synchronized所能完成的所有⼯作 外,还提供了诸如可响应中断锁、可轮询锁请求、定时锁等避免多线程死锁的⽅法。 在并发量…...

如何秒杀系统架构设计
原文路径:https://learn.lianglianglee.com/%e4%b8%93%e6%a0%8f/%e5%a6%82%e4%bd%95%e8%ae%be%e8%ae%a1%e4%b8%80%e4%b8%aa%e7%a7%92%e6%9d%80%e7%b3%bb%e7%bb%9f/00%20%e5%bc%80%e7%af%87%e8%af%8d%20%e7%a7%92%e6%9d%80%e7%b3%bb%e7%bb%9f%e6%9e%b6%e6%9e%84%e8%ae%be%e8%ae%…...

深度神经网络——什么是降维?
引言 什么是降维? 降维是用于降低数据集维度的过程,采用许多特征并将它们表示为更少的特征。 例如,降维可用于将二十个特征的数据集减少到仅有几个特征。 降维通常用于无监督学习任务 降维是一个用于降低数据集维度的过程,采用许…...

SpringMVC—RequestMapping注解
一、RequestMapping注解 RequestMapping注解:是Spring MVC框架中的一个控制器映射注解,用于将请求映射到相应的处理方法上,具体来说,他可以将指定URL的请求绑定到一个特定的方法或类上,从而实现对请求的处理和响应。 …...

Java线程池基本概念
全局和局部线程池 全局线程池 在Spring框架中,全局线程池如ThreadPoolTaskExecutor通常是作为Spring Bean存在的,它们的生命周期由Spring容器管理。当Spring容器关闭时,这些线程池也会被适当地清理和关闭。因此,开发者通常不需要手…...
智能车联网安全发展形势、挑战
一、技术演进加速车联网安全环境复杂变化 当前,5G、大数据、大算力、大模型等技术正加速在车联网领域实现融合应用。车联网的网络通信能力、感知计算水平以及创新业务应用都在快速发展,与此同时,车联网的网络安全环境也在随之演进变化&#…...
AWS概述
AWS概述EMR Serverless Aamzon Web Services提供了一系列全球范围的云产品,包括计算、存储、数据库、分析、网络、移动、开发工具、管理工具、IoT、安全和企业应用:按需交付、及时可用、采用随用随付的定价模式。你可以畅享200多种服务,从数据…...

MySQL常见面试题自测
文章目录 MySQL基础架构一、说说 MySQL 的架构?二、一条 SQL语句在MySQL中的执行过程 MySQL存储引擎一、MySQL 提供了哪些存储引擎?二、MySQL 存储引擎架构了解吗?三、MyISAM 和 InnoDB 的区别? MySQL 事务一、何谓事务࿱…...

c语言回顾-函数递归
1.递归的介绍 1.1什么是递归 递归是指在一个函数的定义中调用自身的过程。简单来说,递归是一种通过重复调用自身来解决问题的方法。 递归包括两个关键要素:基本情况和递归情况。基本情况是指当问题达到某个特定条件时,不再需要递归调用&am…...

消息队列-RabbitMQ-延时队列实现
死信队列 DLX,全称为Dead-Letter-Exchange,死信交换机,死信邮箱。当消息在一个队列中变成死信之后,它能重新发送到另外一个交换器中,这个交换器就是DLX,绑定DLX的队列就称为死信队列。 导致死信的几种原因: ● 消息…...

【热门开源项目推荐】满足不同程序员的需求与关注点
目录 前言一、热门开源项目介绍二、使用开源热门项目的优势(一)经济方面(二)技术方面(三)社区支持及协作方面 三、程序员选择项目模型建议(一)关键步骤(二)示…...
一文理清GO语言日志库实现开发项目中的日志功能(rotatelogs/zap分析)
一文理清GO语言日志库实现开发项目中的日志功能(rotatelogs/zap分析) rotatelogs rotatelogs 是一个用于管理日志文件的 Go 语言库,它提供了自动轮换、压缩和删除旧日志文件的功能。这个库可以帮助你更好地管理和维护你的应用程序日志。要使…...

【Go语言精进之路】构建高效Go程序:了解string实现原理并高效使用
🔥 个人主页:空白诗 🔥 热门专栏:【Go语言精进之路】 文章目录 引言一、Go语言的字符串类型1.1 字符串的定义1.2 字符串的零值可用1.3 字符串的不可变性1.4 字符串的拼接1.5 字符串的常用方法1.6 实际使用示例 二、字符串的内部表…...
HDFS 常见命令
在HDFS创建文件夹:hdfs dfs -mkdir /test 复制本地文件到HDFS中某个目录下:hdfs dfs -put /本地路径 /hdfs 路径 查看文件内容:hdfs dfs -cat /test.txt 查看当前文件夹目录:hdfs dfs -ls / 查看文件夹中的文件数:…...

示例:WPF中应用Grid的SharedSizeGroup设置整齐的布局
一、目的:应用Grid的SharedSizeGroup设置整齐的布局 二、实现 <ItemsControl ItemsSource"{local:GetStudents Count5}"><ItemsControl.ItemTemplate><DataTemplate><Grid ShowGridLines"True"><Grid.ColumnDefinit…...
React的form表单自定义校验规则
使用antd开发的过程中,必定会遇到需要对form表单进行必填校验的处理,正常情况下,我们都会一个空的必填校验,如下:一般我们只需要简单配置rules即可 <FormItem label"管理员姓名" {...itemLayout.wholeLi…...

一种新的一维时间序列信号盲解卷积算法(以旋转机械故障诊断为例,MATLAB环境)
一种新的一维时间序列信号盲解卷积算法(以旋转机械故障诊断为例,MATLAB环境),可作为深度学习信号前处理过程,水个SCI不是问题。 机械设备的状态信号中往往蕴含着大量的设备异常信息。如何从繁多的机械状态信号中提取足…...

618电商是社区网站入局的好时机吗?
近日,随着618大促的临近,许多内容平台像B站、小红书等纷纷被电商活动所充斥,让用户感觉仿佛被电商绑架一般。这种用户体验的极度不佳让人开始思考,难道这就是互联网社区的未来发展方向吗? 在所有平台性质的社区中&…...
不知道密码,一样能卸载瑞星esm防病毒终端安全防护系统
离开单位后试图卸载瑞星的时候却发现还需要密码,真是烦死了。研究了几分钟后找到了完美卸载方法。 首先,让我们请出老流氓360安全卫士,下载好它,让右键菜单出现使用 360强力删除这一选项。 之后,进入安全模式&#x…...

【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...

React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...

CentOS下的分布式内存计算Spark环境部署
一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...
使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装
以下是基于 vant-ui(适配 Vue2 版本 )实现截图中照片上传预览、删除功能,并封装成可复用组件的完整代码,包含样式和逻辑实现,可直接在 Vue2 项目中使用: 1. 封装的图片上传组件 ImageUploader.vue <te…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...

3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...

sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!
简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...