分享刷题过程中有价值的两道题目
小编在这里先祝大家新的一年里所愿皆得,万事顺意,天天开心!!!
一.水仙花数
题目描述:
求100∼999中的水仙花数。若三位数ABC=A^3+B^3+C^3,则称ABC为水仙花数。例如153,13+53+33=1+125+27=153,则153是水仙花数。
可以从题目中得到我们需要的3个信息:
1.我们首先要产生100~999的数字
2.再判断这些数字是不是水仙花数
3.是水仙花数就打印出来
那思路出来了,这道题目的关键就是我们如何判断这个数是否是水仙花数。
其实就是根据题目说的,把每一位分出来,然后每一位的三次方加起来,看他等不等于原来的这三位数。而分离我们每一位数,就需要用到%,/这两个符号。
下面小编直接把代码放出来,供大家参考。
#include<iostream>
#include<cmath>
using namespace std;int main()
{
for (int i = 100; i <= 999; i++)
{
int tmp = i;
int sum = 0;
while (tmp)
{
sum += pow(tmp % 10, 3);
tmp /= 10;
}
if (sum == i)
{
cout << i << endl;
}
}
return 0;
}
二.画矩形
题目描述:
根据输入的四个参数:a,b,c,f 参数,画出对应的矩形。
前两个参数 a,b 为整数,依次代表矩形的高和宽;
第三个参数 c 是一个字符,表示用来填充的矩形符号;
第四个参数 f 为整数,0代表空心,否则代表实心。
这道题可以看到有区分空心和实心,全是实心倒是简单,只需要用两个变量,两次循环遍历即可。那怎么处理空心的呢?
我们其实画个图分析一下就可以了:
假设高和宽都是7,并且是空心的,那就可以画出以下的矩形

为了方便解释,我们直接定义两个变量i和j,i表示行(高a),j表示列(宽b)。
通过这张图,我们不难发现,第一行和最后一行一定都是有符号填充的。
而第一列和最后一列也一定都是有符号填充的。
其实,这就是我们打印空心的条件,或者是方法。
我们只需要使用if语句去判断上面四个加粗字体是否满足就好,如果满足上面四个加粗条件,我们就打印输入的符号(c)。
以上是空心的打印方法。
最开始的时候,我们很容易写出这个框架:

下面就是根据我们分析的进行填充
实心很简单,每行每列直接遍历

空心要加上我们的判断条件

看到这里,可能有些人会有点难以理解这个条件,小编先拆开了给大家演示:
假设我们我们只保留了if条件句中i==1和i==a两个条件,这个时候我们遍历,就很容易想到,当外层循环满足i是第一行(i==1)和i是最后一行(i==a)的时候我们j是每一列都遍历循环,这时候就会打印出来两条有符号的图案。
调试一下,可以看到

那就还剩下竖着的两条图案,也就是我们另外两个条件(j==1)和(j==b)。
这个条件其实是,当我们外层循环i每一次不断增加的时候,我们内层循环只要一碰到j是第一列和j是最后一列的时候就打印符号(c),而其他列则为空。
这个时候我们把四个条件全部加上再来调试一遍:

记得加上打印空的这个条件,不然调试出来的就会是这个样子:

小编把代码放出来供大家参考
#include<iostream>
using namespace std;
int a, b, f;
char c;
int main()
{
cin >> a >> b >> c >> f;if (f != 0)//实心
{
for (int i = 1; i <= a; i++)
{
for (int j = 1; j <= b; j++)
{
cout << c;
}
cout << endl;
}
}
else//空心
{
for (int i = 1; i <= a; i++)
{
for (int j = 1; j <= b; j++)
{
if (i == 1 || i == a || j == 1 || j == b)
cout << c;
else
cout << " ";
}
cout << endl;
}
}
return 0;
}
—优化版本
理解了思路,我们就可以来优化一下,
可以看到虽然我们上面的代码可以运行,但是不够简洁,因为我们打印空心和实心用了两个几乎相似的循环(框架),有点啰嗦,我们可以把空心和实心合并起来,从而让代码更加简洁,可读性更高。
合起来,我们首先可以想到的是要使用if判断,并且合起来不管是空心还是实心我们都需要把空心外面的框架打印出来。

下面就是矩形里面的填充了。
从题目就可以看出来,当f等于0的时候,是空心,也就是矩形框架里面要填充的是空格( ' ' )。
否则,就是实心,也就是矩形框架里面我们直接打印字符c。
小编吧代码放出来,供大家参考:

今天的分享就到这里啦,感谢各位老铁长期以来的支持~

相关文章:
分享刷题过程中有价值的两道题目
小编在这里先祝大家新的一年里所愿皆得,万事顺意,天天开心!!! 一.水仙花数 题目描述: 求100∼999中的水仙花数。若三位数ABCA^3B^3C^3,则称ABC为水仙花数。例如153,135333112527153&…...
蓝桥杯例题六
奋斗是一种态度,也是一种生活方式。无论我们面对什么样的困难和挑战,只要心怀梦想,坚持不懈地努力,就一定能够迈向成功的道路。每一次失败都是一次宝贵的经验,每一次挫折都是一次锻炼的机会。在困难面前,我…...
DeepSeek 详细使用教程
1. 简介 DeepSeek 是一款基于人工智能技术的多功能工具,旨在帮助用户高效处理和分析数据、生成内容、解答问题、进行语言翻译等。无论是学术研究、商业分析还是日常使用,DeepSeek 都能提供强大的支持。本教程将详细介绍 DeepSeek 的各项功能及使用方法。…...
《tcp/ip协议详解》,tcp/ip协议详解
TCP/IP协议(Transmission Control Protocol/Internet Protocol)是网络通信协议的一种,也被称为“Internet协议”,是Internet上运行的基本协议,广泛应用于各种网络环境和应用场合。以下是对TCP/IP协议的详细解析&#x…...
游戏引擎 Unity - Unity 设置为简体中文、Unity 创建项目
Unity Unity 首次发布于 2005 年,属于 Unity Technologies Unity 使用的开发技术有:C# Unity 的适用平台:PC、主机、移动设备、VR / AR、Web 等 Unity 的适用领域:开发中等画质中小型项目 Unity 适合初学者或需要快速上手的开…...
【数据结构】_时间复杂度相关OJ(力扣版)
目录 1. 示例1:消失的数字 思路1:等差求和 思路2:异或运算 思路3:排序+二分查找 2. 示例2:轮转数组 思路1:逐次轮转 思路2:三段逆置(经典解法) 思路3…...
[Java]异常
在程序运行时,如果遇到问题(比如除以零、文件找不到等),程序会发生异常。异常就像是程序的“错误提醒”,当程序运行中出错时,它会停止,给出一个错误信息。我们可以通过异常处理来控制这些错误&a…...
【C++语言】卡码网语言基础课系列----13. 链表的基础操作I
文章目录 背景知识链表1、虚拟头节点(dummyNode)2、定义链表节点3、链表的插入 练习题目链表的基础操作I具体代码实现 小白寄语诗词共勉 背景知识 链表 与数组不同,链表的元素存储可以是连续的,也可以是不连续的,每个数据除了存储本身的信息…...
Vue.js组件开发-实现图片浮动效果
使用Vue实现图片浮动效果 实现思路 将使用Vue的单文件组件(.vue)来实现图片浮动效果。主要思路是通过CSS的transform属性结合JavaScript的定时器来改变图片的位置,从而实现浮动效果。 代码实现 <template><!-- 定义一个包含图片…...
自制Windows系统(十一、Windows11GUI)
开源地址:下载(Work(Windows11gui).img) 上图 部分代码: void init_screen8(char *vram, int x, int y) { int *fat; unsigned char c; struct MEMMAN *memman (struct MEMMAN *) MEMMAN_ADDR; boxfill8(vram, x, 136, 0, …...
索罗斯的“反身性”(Reflexivity)理论:市场如何扭曲现实?(中英双语)
索罗斯的“反身性”(Reflexivity)理论:市场如何扭曲现实? 一、引言:市场是镜子,还是哈哈镜? 在传统经济学中,市场通常被认为是一个理性、有效的反映现实的系统。按照经典经济学理论…...
力扣257. 二叉树的所有路径(遍历思想解决)
Problem: 257. 二叉树的所有路径 文章目录 题目描述思路复杂度Code 题目描述 思路 遍历思想(利用二叉树的先序遍历) 利用先序遍历的思想,我门用一个List变量path记录当前先序遍历的节点,当遍历到根节点时,将其添加到另一个List变量res中&…...
使用朴素贝叶斯对散点数据进行分类
本文将通过一个具体的例子,展示如何使用 Python 和 scikit-learn 库中的 GaussianNB 模型,对二维散点数据进行分类,并可视化分类结果。 1. 数据准备 假设我们有两个类别的二维散点数据,每个类别包含若干个点。我们将这些点分别存…...
如何实现滑动列表功能
文章目录 1 概念介绍2 使用方法3 示例代码 我们在上一章回中介绍了沉浸式状态栏相关的内容,本章回中将介绍SliverList组件.闲话休提,让我们一起Talk Flutter吧。 1 概念介绍 我们在这里介绍的SliverList组件是一种列表类组件,类似我们之前介…...
计算机网络一点事(22)
地址解析协议ARP ARP:查询Mac地址 ARP表(ARP缓存):记录映射关系,一个数据结构,定期更新ARP表 过程:请求分组,响应分组 动态主机配置协议DHCP 分配IP地址,配置默认网关…...
C# 语言基础全面解析
.NET学习资料 .NET学习资料 .NET学习资料 一、引言 C# 是一种功能强大、面向对象且类型安全的编程语言,由微软开发,广泛应用于各种类型的软件开发,从桌面应用、Web 应用到游戏开发等领域。本文将全面介绍 C# 语言的基础知识,帮…...
[原创](Modern C++)现代C++的关键性概念: 流格式化
常用网名: 猪头三 出生日期: 1981.XX.XX 企鹅交流: 643439947 个人网站: 80x86汇编小站 编程生涯: 2001年~至今[共24年] 职业生涯: 22年 开发语言: C/C、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python 开发工具: Visual Studio、Delphi、XCode、Eclipse、C Bui…...
《数据可视化新高度:Graphy的AI协作变革》
在数据洪流奔涌的时代,企业面临的挑战不再仅仅是数据的收集,更在于如何高效地将数据转化为洞察,助力决策。Graphy作为一款前沿的数据可视化工具,凭借AI赋能的团队协作功能,为企业打开了数据协作新局面,重新…...
C++并发:设计无锁数据结构
只要摆脱锁,实现支持安全并发访问的数据结构,就有可能解决大粒度锁影响并发程度以及错误的加锁方式导致死锁的问题。这种数据结构称为无锁数据结构。 在了解本文时,务必读懂内存次序章节。 在设计无锁数据结构时,需要极为小心谨…...
蓝桥杯刷题DAY2:二维前缀和 一维前缀和 差分数组
闪耀的灯光 📌 题目描述 蓝桥公园是一个适合夜间散步的好地方,公园可以被视为由 n m 个矩形区域构成。每个区域都有一盏灯,初始亮度为 a[i][j]。 小蓝可以选择一个大的矩形区域,并按下开关一次,这将使得该区域内每盏…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...
linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...
golang循环变量捕获问题
在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - 循环变量捕获问题。让我详细解释一下: 问题背景 看这个代码片段: fo…...
K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
Android第十三次面试总结(四大 组件基础)
Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机: onCreate() 调用时机:Activity 首次创建时调用。…...
Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?
Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...
技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...

