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
  1. 打印的内容是分为9⾏的,第1⾏打印1项,第2⾏打印2项,第3⾏打印3项,以此类推,第9⾏打印9项。
  2. 每⼀⾏的信息,每⼀项的第⼀个乘数和列号是⼀致的,每⼀项的第⼆个乘数和⾏号是⼀致的,两个乘数的积就是第三个数。
  3. 打印9⾏,我们可以使⽤循环解决,总共循环9次,每次进⼊循环打印⼀⾏,循环变量使⽤ i 来控制, i 从1开始,循环到9
  4. 打印⼀⾏。第 i ⾏是有 i 项组成的,这 i 项的打印也可以写成循环来完成。使⽤循环变量 j , j 从1开始,⼀致循环到 i ,正好循环 i 次,正好打印 i 项。同时每⼀⾏打印完后还要换⾏。
  5. 输出的效果中,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]]

#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的⾃然数,除了1和它自身外,不能被其他⾃然数整除的数叫做质数。
  2. 第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]]

“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>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/895719.shtml

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

相关文章

leetcode - hot100 - python - 专题一:哈希

1、两数之和 简单 题目&#xff1a; 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。你可以假设每种输入只会对应一个答案&#xff0c;并且你不能使用两次相同的元素。你可…

JavaEE-SpringBoot快速入门

文章目录 本节目标Maven什么是Maven创建一个Maven项目maven项目功能maven的依赖管理全球仓库, 私服, 本地服务器, 配置国内镜像 第一个SpringBoot项目创建项目运行SpringBoot程序 SpringBoot原理初步Web服务器 总结 本节目标 了解什么是maven, 配置国内源使用Springboot创建项…

【Viper】配置格式与支持的数据源与go案例

Viper 是一个用于 Go 应用程序的配置管理库&#xff0c;支持多种配置格式和数据源。 安装依赖 go get github.com/spf13/viper go get github.com/spf13/viper/remote go get go.etcd.io/etcd/client/v3"github.com/spf13/viper/remote"要写在etcd客户端import里 1…

【C/C++】后缀表达式 蓝桥杯/ACM备赛

核心考点&#xff1a;1.栈的应用 2.字符串处理 题目描述 所谓后缀表达式是指这样的一个表达式&#xff1a;式中不再引用括号&#xff0c;运算符号放在两个运算对象之后&#xff0c;所有计算按运算符号出现的顺序&#xff0c;严格地由左而右新进行&#xff08;不用考虑运算符的…

【AI实践】deepseek支持升级git

当前Windows 11 WSL的git是2.17&#xff0c;Android Studio提示需要升级到2.19版本 网上找到指导文章 安装git 2.19.2 cd /usr/src wget https://www.kernel.org/pub/software/scm/git/git-2.19.2.tar.gz tar xzf git-2.19.2.tar.gz cd git-2.19.2 make prefix/usr/l…

QEMU 搭建 Ubuntu x86 虚拟机

1. 安装 QEMU 在 Ubuntu 系统中&#xff0c;可以通过以下命令安装 QEMU&#xff1a; sudo apt-get update sudo apt-get install qemu-system-x86_64 qemu-kvm libvirt-daemon libvirt-clients bridge-utils virt-manager2. 创建虚拟硬盘镜像 qemu-img create -f raw ubuntu…

Linux驱动层学习:Linux 设备树

设备树是一种数据结构&#xff0c;包含多个节点&#xff0c;用于描述硬件设备及其配置信息&#xff0c;它通常用于嵌入式系统中&#xff0c;尤其是在Linux操作系统中&#xff0c;帮助操作系统识别和管理硬件资源&#xff0c;设备树不是代码&#xff0c;而是一种用数据描述硬件信…

金蝶云星空与钉钉高效数据集成案例分享

金蝶云星空数据集成到钉钉的技术案例分享 在企业信息化系统中&#xff0c;数据的高效流动和实时反馈是提升业务效率的关键。本文将聚焦于一个具体的系统对接集成案例&#xff1a;如何将金蝶云星空的数据集成到钉钉&#xff0c;并实现审核状态的回传提示。 本次集成方案名为“…

图形渲染(一)——Skia、OpenGL、Mesa 和 Vulkan简介

1.Skia —— 2D 图形库 Skia 是一个 2D 图形库&#xff0c;它的作用是为开发者提供一个高层次的绘图接口&#xff0c;方便他们进行 2D 图形渲染&#xff08;比如绘制文本、形状、图像等&#xff09;。Skia 本身不直接管理 GPU 或进行底层的渲染工作&#xff0c;而是通过 底层图…

GIT提错分支,回滚提交

1. 准备示例 假设我们有三次提交&#xff1a; test1&#xff1a;需要在 master 分支提交test2、test3&#xff1a;需要在 develop 分支提交 远端线上记录 2. 步骤 选择需要回退的记录&#xff1a; 选中需要回退的 commit&#xff0c;选择 Reset Current Branch to Here...。…

【原创】在ubuntu中搭建gradle开发环境

检查Linux版本 rootwww:~# hostnamectlStatic hostname: www.0x88.comIcon name: computer-vmChassis: vmMachine ID: 30fa955a36be492ca459599ef20bc508Boot ID: 37084dbe36f44adaa075e8f9a98f132eVirtualization: kvm Operating System: Ubuntu 22.04.5 LTSKernel: Linux 5.…

【JavaEE进阶】MyBatis入门

目录 &#x1f334;前言 &#x1f332;什么是MyBatis? &#x1f333;准备工作 &#x1f6a9;创建工程 &#x1f6a9;配置数据库连接字符串 &#x1f6a9;数据准备 &#x1f6a9;编写持久层代码 &#x1f343;单元测试 &#x1f334;前言 在应⽤分层学习时,我们了解到…

以太网详解(八)传输层协议:TCP/UDP 协议

文章目录 传输层协议概述为什么需要传输层&#xff1f;传输层功能网络层与传输层在实现 “端到端” 传输的异同两类服务:面向连接/无连接服务 传输控制协议 TCPTCP 协议数据单元格式TCP 的重传机制快重传和快恢复快重传举例快恢复算法 用户数据报协议 UDPUDP 概述UDP 基本工作过…

Electron 客户端心跳定时任务调度库调研文档 - Node.js 任务调度库技术调研文档

Electron 客户端心跳定时任务调度库调研文档 - Node.js 任务调度库技术调研文档 本文将对七个流行的定时任务调度库&#xff1a;node-cron、rxjs、bull、node-schedule、agenda、bree、cron。这些库都可以用来处理定时任务&#xff0c;但它们的特点和适用场景有所不同。我们将从…

DeepSeek 开放平台无法充值 改用其他平台API调用DeepSeek-chat模型方法

近几天DeepSeek开放平台无法充值目前已经关闭状态&#xff0c;大家都是忙着接入DeepSeek模型 &#xff0c;很多人想使用DeepSeek怎么办&#xff1f; 当然还有改用其他平台API调用方法&#xff0c;本文以本站的提供chatgpt系统为例&#xff0c;如何修改DeepSeek-chat模型API接口…

pix2text 使用经验

给同行打鸡血 &#x1f60a; 构建结构化的数理领域知识库&#xff1a; 提高可访问性和可搜索性 Markdown和LaTeX格式&#xff1a;这两种格式易于在线发布和共享&#xff0c;有助于提高数学内容的可访问性。搜索引擎优化&#xff1a;将PDF内容转换为标记语言&#xff0c;可以…

Linux(centos)系统安装部署MySQL8.0数据库(GLIBC版本)

安装前检查服务器glibc版本&#xff0c;下载对应版本包 rpm -qa | grep glibc mysql安装包及依赖包已整理好&#xff0c;下载地址&#xff1a;https://pan.quark.cn/s/3137acc814c0&#xff0c;下载即可安装 一、下载MySQL mysql安装包及依赖包已整理好&#xff0c;下载地址…

6.2.图的存储结构-邻接矩阵法

一.邻接矩阵法存储不带权图&#xff1a; 结点不带权值&#xff1a; 1.左图的无向图中&#xff0c;A到B直达的有一条路&#xff0c;所以A行B列的值为1&#xff1b; 左图的无向图中&#xff0c;A到F没有直达的路&#xff0c;所以A行F列的值为0&#xff1b; 结论&#xff1a;无…

【VB语言】EXCEL中VB宏的应用

【VB语言】EXCEL中VB宏的应用 文章目录 [TOC](文章目录) 前言一、EXCEL-VB1.实验过程2.代码 二、EXCEL-VB 生成.c.h文件1.实验过程2.代码 四、参考资料总结 前言 1.WPS-VB扩展包 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、EXCEL-VB 1.实验过…

用deepseek学大模型05逻辑回归

deepseek.com:逻辑回归的目标函数&#xff0c;损失函数&#xff0c;梯度下降 标量和矩阵形式的数学推导&#xff0c;pytorch真实能跑的代码案例以及模型,数据&#xff0c;预测结果的可视化展示&#xff0c; 模型应用场景和优缺点&#xff0c;及如何改进解决及改进方法数据推导。…