NO.18十六届蓝桥杯备战|循环嵌套|乘法表|斐波那契|质数|水仙花数|(C++)
循环嵌套
循环嵌套的使⽤
while , do while , for ,这三种循环往往会嵌套在⼀起才能更好的解决问题,就是我们所说的:循环嵌套。这三种循环都可以任意嵌套使⽤
⽐如:
写⼀个代码,打印⼀个乘法⼝诀表
1*1= 1
1*2= 2 2*2= 4
1*3= 3 2*3= 6 3*3= 9
1*4= 4 2*4= 8 3*4=12 4*4=16
1*5= 5 2*5=10 3*5=15 4*5=20 5*5=25
1*6= 6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7= 7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8= 8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9= 9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
- 打印的内容是分为9⾏的,第1⾏打印1项,第2⾏打印2项,第3⾏打印3项,以此类推,第9⾏打印9项。
- 每⼀⾏的信息,每⼀项的第⼀个乘数和列号是⼀致的,每⼀项的第⼆个乘数和⾏号是⼀致的,两个乘数的积就是第三个数。
- 打印9⾏,我们可以使⽤循环解决,总共循环9次,每次进⼊循环打印⼀⾏,循环变量使⽤ i 来控制, i 从1开始,循环到9
- 打印⼀⾏。第 i ⾏是有 i 项组成的,这 i 项的打印也可以写成循环来完成。使⽤循环变量 j , j 从1开始,⼀致循环到 i ,正好循环 i 次,正好打印 i 项。同时每⼀⾏打印完后还要换⾏。
- 输出的效果中,
i*j的结果如果是2位数,才有右对⻬,不够2位数的情况,使⽤空格补⻬。所以这⾥就得使⽤ %2d 这样的输出格式控制了。
#include <iostream>
using namespace std;
#include <cstdio>int main()
{for (int i = 1; i <= 9; i++){for (int j = 1; j <= i; j++){printf("%d*%d=%2d ", j, i, j * i);}cout << endl;}return 0;
}
练习
乘法表
#include <iostream>
using namespace std;
#include <cstdio>int main()
{for (int i = 1; i <= 9; i++){for (int j = 1; j <= i; j++){printf("%d*%d=%2d ", j, i, j * i);}cout << endl;}return 0;
}
像题⽬要求的这种情况,就得使⽤两层循环嵌套来解决,外层循环负责控制打印⼏⾏,内部循环负责控制每⼀⾏打印⼏项。
包含数字9的数
#include <iostream>
using namespace std;int main()
{int cnt = 0;for (int i = 1; i <= 2019; i++){int n = i;while (n){if (n % 10 == 9){cnt++;break;}n /= 10;}}cout << cnt << endl;return 0;
}
在多层嵌套的循环中也可以使⽤break,但是要注意,⼀个break只能跳出⾃⼰所在的循环,⽆法⼀次性跳出所有的循环
B2064 斐波那契数列
#include <iostream>
using namespace std;int n;int main()
{cin >> n;int a = 0;while (n--){cin >> a;int i = 1, j = 1, k = 1;while (a >= 3){k = i + j;i = j;j = k;a--;}cout << k << endl;}return 0;
}
B2079 求出 e 的值
#include <iostream>
#include <cstdio>
using namespace std;int n;int main()
{cin >> n;double e = 1;for (int j = 1; j <= n; j++){long long x = 1;for (int i = 1; i <= j; i++){x *= i;}e += 1.0 / x;}printf("%.10f", e);return 0;
}
#include <iostream>
using namespace std;
int main()
{ int n = 0; cin >> n; int i = 1; double e = 1; long long fac = 1; while (i <= n) { fac *= i; e += 1.0 / fac; i++; } printf("%.10lf\n", e); return 0;
}
三角形
#include <iostream>
using namespace std;int n;int main()
{cin >> n;for (int i = 1; i <= n; i++){for (int j = 1; j <= i; j++){cout << "*";}cout << endl;}return 0;
}
B2083 画矩形
![![[Pasted image 20250214192601.png]]](https://i-blog.csdnimg.cn/direct/23bb76689fcd4e0cb9555d30ef866431.png)
#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++){if (i == 1 || i == a || j == 1 || j == b)cout << c;elsecout << " "; }cout << endl;}}else{for (int i = 1; i <= a; i++){for (int j = 1; j <= b; j++){cout << c; }cout << endl;}}return 0;
}
如果我们仔细去琢磨上⾯的代码,会发现 if 和 else 中都是打印图案,区别在于实⼼还是空⼼,实⼼和空⼼的区别⼜在于中间区域,其实边上的⼀圈实⼼和空⼼是⼀样的。所以我们在实现的时候,边上⼀圈打印字符,剩余的区域,做⼀个判断,如果是实⼼打印c,如果是空⼼就打印空格就好了,那么就有了下⾯简化的写法。
#include <iostream>
using namespace std;int a, b, f;
char c;int main()
{cin >> a >> b >> c >> f;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{if (f == 0)cout << " ";elsecout << c; }}cout << endl;}return 0;
}
B2085 第 n 小的质数
解析:
- 质数⼜称素数。⼀个⼤于1的⾃然数,除了1和它自身外,不能被其他⾃然数整除的数叫做质数。
- 第n⼩的质数,其实就是从⼩到⼤的第n个质数。
伪代码
int i = 2;
int cnt = 0;
while (1)
{判断i是否是素数试除:拿2~i-1之间的数组去试除i如果2-i-1之间有数字能整除i,则i不是素数如果2-i-1之间没有任何一个数字能整除i,则i是素数如果i是素数,cnt++if (cnt == n)break;i++;
}
循环停止的时候,i就是第n个素数
#include <iostream>
using namespace std;int n;int main()
{cin >> n;int i = 2;int cnt = 0;while (1){int flag = 1;for (int j = 2; j <= i-1; j++){if (i % j == 0){flag = 0;break;}}if (flag == 1)cnt++;if (cnt == n)break;i++;}cout << i << endl;return 0;
}
![![[Pasted image 20250214195145.png]]](https://i-blog.csdnimg.cn/direct/484e4ac72db344698cc00641b31a02f9.png)
“Time Limit Exceeded”(TLE,超时)是⼀个在编程竞赛和在线评测平台(如LeetCode、Codeforces、HackerRank等)中常⻅的错误信息。它意味着程序在执⾏过程中超过了给定的最⼤运⾏时间限制,⽽未能在规定时间内得出结果。
如果 n 有⼀个因⼦ a ,那么必然存在另⼀个因⼦ b ,使得 n = a × b 。如果 a 和 b 都⼤于 n \sqrt{ n } n,那么 a×b 将会⼤于 n ,这与 n=a×b ⽭盾。因此⾄少有⼀个因⼦不会超过的。
#include <iostream>
using namespace std;
#include <cmath>int n;int main()
{cin >> n;int i = 2;int cnt = 0;while (1){int flag = 1;for (int j = 2; j <= sqrt(i); j++){if (i % j == 0){flag = 0;break;}}if (flag == 1)cnt++;if (cnt == n)break;i++;}cout << i << endl;return 0;
}
水仙花数
#include <iostream>
#include <cmath>
using namespace std;int main()
{for (int i = 100; i <= 999; i++){int sum = 0;int tmp = i;while (tmp){sum += pow(tmp % 10, 3);tmp /= 10;}if (sum == i)cout << i << endl;}return 0;
}
pow函数,可以⽤计算次⽅的函数, pow(x, y) 返回的是 x 的 y 次⽅的值
pow 函数需要⼀个头⽂件 <cmath>
相关文章:
NO.18十六届蓝桥杯备战|循环嵌套|乘法表|斐波那契|质数|水仙花数|(C++)
循环嵌套 循环嵌套的使⽤ while , do while , for ,这三种循环往往会嵌套在⼀起才能更好的解决问题,就是我们所说的:循环嵌套。这三种循环都可以任意嵌套使⽤ ⽐如: 写⼀个代码,打印⼀个乘法⼝…...
深入浅出Java反射:掌握动态编程的艺术
小程一言反射何为反射反射核心类反射的基本使用获取Class对象创建对象调用方法访问字段 示例程序应用场景优缺点分析优点缺点 注意 再深入一些反射与泛型反射与注解反射与动态代理反射与类加载器 结语 小程一言 本专栏是对Java知识点的总结。在学习Java的过程中,学习…...
大模型被偷家?CNN结合多模态!
2025深度学习发论文&模型涨点之—— CNN多模态 卷积神经网络是一种特殊类型的神经网络,其主要结构包括卷积层、池化层、全连接层和输出层。卷积层通过卷积操作学习图像的特征,池化层通过下采样操作减少参数数量,全连接层和输出层通过分类…...
UI自动化测试的优缺点?
优点 • 提高测试效率:可以快速地重复执行测试用例。例如,对于一个有大量表单需要验证的网页应用,自动化测试可以在短时间内完成多次输入检查,而手动测试则会花费大量时间。 • 保证测试一致性:每次执行测试的步骤和…...
在 Kubernetes (K8s) 环境中,备份 PostgreSQL 数据库
在 Kubernetes (K8s) 环境中,备份 PostgreSQL 数据库有一些特殊的考虑,因为数据库通常运行在容器中,并且数据存储在卷(如 PersistentVolume)中。你可以通过几种方式在外部备份 PostgreSQL 数据库,下面是一些…...
机器视觉中的3d和2d的区别
在机器视觉中,3D和2D的主要区别体现在数据的维度、处理方式及应用场景上。以下是具体对比: 数据维度 2D视觉 :处理二维图像,仅包含宽度和高度信息,通常以像素矩阵表示。 3D视觉 :处理三维数据,…...
exr 格式下 全景图(经纬图、panorama)转 cubemap
先上效果 (X, -X, Y, -Y, Z, -Z) 下载 exr 经纬图 笔者用的这张:https://polyhaven.com/a/kloofendal_48d_partly_cloudy_puresky 使用 Openexr 的 exrenvmap 工具 下载 我 build 了一份 3.3.2 版本的,免积分下载。 https:/…...
STM32 ADC介绍(硬件原理篇)
目录 背景 AD转换器 采样与保持 量化 编码 AD转换器转换原理 DA转换原理 AD转换原理 背景 在数字系统的广泛应用中,用数字系统处理模拟量的情况十分普遍,因此引入了模拟信号和数字信号的接口问题。为了解决这一问题,首先利用模数转换…...
snort3.0 获取注册规则(19000多条)
面对生活中的手机、电脑网络监控,很多人都是束手无策的,只不过雁过留声风过留痕,黑客路过就会留下入侵痕迹,比如手机没玩的时候,流量异常的增多,并且一直和某一个IP地址通信很频繁,可能是黑客正…...
【GitHub】装修个人主页
持续更新各种好文,长期更新技能手册,建议关注收藏点赞! 创建仓库,仓库名自己用户名 权限:public 勾选add a README file修改README.md 这里都是运用markdown语法,以及html标签编写的,可以自行修…...
名词解释:npm,cnpm,yarn,vite,vue,electron
1. npm (Node Package Manager) 读音: “N-P-M” 或者直接读作 “npm”。 npm 是 Node.js 的官方包管理器,用于安装、发布和管理 JavaScript 软件包。它允许开发者轻松地共享代码,并且可以通过命令行工具来管理依赖关系。通过 npm init 命令可以交互式…...
XMOS的多项音频技术创新将大模型与边缘AI应用密切联系形成生态化合
2025蛇年春节,DeepSeek大语言模型以超低的训练成本震撼全球,预示着大模型技术将以更快的脚步全面走进我们的工作和生活,同时也促进了能够连通各种大模型和应用场景的智能终端将加速演进。语音作为人类与机器最常用的互动沟通媒体,…...
九.Spring Boot使用 ShardingSphere + MyBatis + Druid 进行分库分表
文章目录 前言一、引入依赖二、创建一个light-db_1备用数据库三、配置文件 application-dev.yml四、创建shardingsphere-config.yml完整项目结构 五、测试总结 前言 在现代化微服务架构中,随着数据量的不断增长,单一数据库已难以满足高可用性、扩展性和…...
大数据治理:构建数据驱动的未来基石
一、大数据治理的定义与核心价值 在大数据战略从顶层设计到底层实现的落地过程中,数据治理是基础,技术是承载,分析是手段,应用是目的。与传统数据管理不同,数据治理更侧重于制定行业级制度规范,通过建立数…...
常见的几种设计模式(详细)——应用场景和实现方式
文章目录 🎯单例模式应用实现 🏭工厂模式应用实现 ❓策略模式应用实现 🧑⚖️代理模式应用实现 🔍观察者模式(发布订阅模式)应用实现 🧰装饰器模式应用实现 📰模版方法模式应用实现…...
SonarQube
不同版本的sonarqube需要不同版本的数据库、jdk环境。这个看文档然后确定要求 (有时候文档里标注的系统要求是不行的。比如要求内存2G,但是实际上是不够的,要注意) 我安装的: 官方文档 Prerequisites and overview…...
Nginx 之Rewrite 使用详解
文章目录 1. 概述2. Rewrite 指令 2.1 指令语法2.2 Flag 标记说明 3. Rewrite 与 Location 3.1 Location 分类3.2 Rewrite 和 Location 比较 4. Rewrite 实际场景 4.1 基于域名的跳转4.2 基于客户端 IP 访问跳转4.3 基于参数匹配的跳转4.4 基于目录下所有 PHP 文件跳转4.5 基于…...
注册Gmail如何跳过手机验证环节?
很多小伙伴在注册Gmail的时候都会遇到一个难题:手机号码验证,有可能包括了“手机号无法验证” “国内手机号验证失败” “收不到验证码”等等问题,但 根据真实案例,还有部分人则是“幸运地”没有手机号验证环节,那么今…...
WordPress自助建站全攻略
一、基础概念与核心优势 WordPress自助建站是一种无需编程即可搭建网站的平台,基于开源CMS系统,支持高度定制化。其核心优势主要体现在: 易用性:拖拽式编辑器和直观的后台操作,适合零基础用户快速上手。低成本&#x…...
TreeSet(单列集合)
TreeSet 是 Java 集合框架中的一种实现了 Set 接口的类,它通过一个红黑树(Red-Black Tree)来存储元素。由于使用了树结构,TreeSet 保证了元素的有序性,并且不允许重复元素。 1. TreeSet 的基本特性 有序性࿱…...
Java 语言特性(面试系列2)
一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...
RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...
2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
以光量子为例,详解量子获取方式
光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...
JAVA后端开发——多租户
数据隔离是多租户系统中的核心概念,确保一个租户(在这个系统中可能是一个公司或一个独立的客户)的数据对其他租户是不可见的。在 RuoYi 框架(您当前项目所使用的基础框架)中,这通常是通过在数据表中增加一个…...
