NO.16十六届蓝桥杯备战|for循环|七道习题|ceil|floor|pow(C++)

news2025/2/18 15:03:21

for循环

for循环语法形式

for 循环是三种循环中使⽤最多的, for 循环的语法形式如下:

//形式1  
for(表达式1; 表达式2; 表达式3)  
语句;

//形式2  
//如果循环体想包含更多的语句,可以加上⼤括号  
for(表达式1; 表达式2; 表达式3)  
{  
	语句1;  
	语句2;  
	...  
}

表达式1 ⽤于循环变量的初始化
表达式2 ⽤于循环结束条件的判断
表达式3 ⽤于循环变量的调整

执⾏流程

![[Pasted image 20250212110204.png]]

⾸先执⾏ 表达式1 初始化循环变量,接下来就是执⾏ 表达式2 的判断部分, 表达式2 的结果如果
==0,则循环结束; 表达式2 的结果如果!=0则执⾏循环语句,循环语句执⾏完后,再去执⾏表 达式3,调整循环变量,然后再去 表达式2 的地⽅执⾏判断, 表达式2 的结果是否为0,决定循环是否继续。
整个循环的过程中, 表达式1 初始化部分只被执⾏1次,剩下的就是 表达式2 、循环语句、 表达式3在循环。

实践

练习
使⽤ for 循环在屏幕上打印1~10的值

#include <iostream>
using namespace std;

int main()
{
	int i = 0;
	for (i = 0; i <= 10; i++)
	{
		cout << i << " ";
	}

	return 0;
}

#include <iostream>
using namespace std;

int main()
{
	for (int i = 0; i <= 10; i++)
	{
		cout << i << " ";
	}

	return 0;
}

![[Pasted image 20250212125934.png]]
上⾯两种代码的差异是,代码1中for循环结束后,i的值还可以继续使⽤;但是代码2中for循环的外边是不能使⽤的,i只能在for循环中使⽤。

while和for对⽐

![[Pasted image 20250212130033.png]]

for 和 while 在实现循环的过程中都有初始化、判断、调整这三个部分,但是 for 循环的三个部分⾮常集中,便于代码的维护,⽽如果代码较多的时候 while 循环的三个部分就⽐较分散,所以从形式上 for 循环要更优⼀些。

练习

求和2

计算1~100之间3的倍数的数字之和

#include <iostream>
using namespace std;

int main()
{
	int sum = 0;
	for (int i = 1; i <= 100; i++)
	{
		if (i % 3 == 0)
			sum += i;
	}
	cout << sum << endl;

	return 0;
}

// 优化
#include <iostream>
using namespace std;

int main()
{
	int sum = 0;
	for (int i = 3; i <= 100; i += 3)
	{
		sum += i;
	}
	cout << sum << endl;

	return 0;
}
B2054 求平均年龄
#include <iostream>
using namespace std;
#include <cstdio>

int tmp;
int sum;

int main()
{
    int n;
    cin >> n;

    for (int i = 1; i <= n; i++)
    {
        cin >> tmp;
        sum += tmp;
    }
    printf("%.2f\n", sum * 1.0 / n);
    
    return 0;
}
B2058 奥运奖牌计数
#include <iostream>
using namespace std;

int main()
{
    int n;
    cin >> n;
    int a, b, c;
    int r1 = 0, r2 = 0, r3 = 0;
    for (int i = 0; i < n; i++)
    {
        cin >> a >> b >> c;
        r1 += a;
        r2 += b;
        r3 += c;
    }
    int sum = r1 + r2 + r3;
    printf("%d %d %d %d\n", r1, r2, r3, sum);
    
    return 0;
}
B2065 鸡尾酒疗法
#include <iostream>
using namespace std;

int main()
{
    int n = 0;
    cin >> n;
    int s1, s2;
    cin >> s1 >> s2;
    double p = s2 * 1.0 / s1;
    for (int i = 1; i < n; i++)
    {
        cin >> s1 >> s2;
        if (p - s2 * 1.0 / s1 > 0.05)
            cout << "worse" << endl;
        else if (s2 * 1.0 / s1 - p > 0.05)
            cout << "better" << endl;
        else
            cout << "same" << endl;
    }
    
    return 0;
}
B2066 救援
#include <iostream>  
#include <cmath>  
using namespace std;  

int n;
double x, y;  
int p;  

int main()  
{  
	cin >> n;  
	double t = 0;  
	for (int i = 0; i < n; i++)  
	{  
		cin >> x >> y >> p;  
		float dis = sqrt(x * x + y * y);  
		t += p * 1 + dis / 50 + p * 0.5 + dis / 50;  
	}  
	cout << (int)ceil(t) << endl;  
	
	return 0;  
}

![[Pasted image 20250213134826.png]]

向上取整算法

double d = 6.5
int q = (int)d;
double q = d - q;
if (p > 0.0)
	(int)(d + 1);
else
	(int)d;

ceil 和 floor 函数

  • ceil - 对⼀个浮点数向上取整,需要头⽂件 <cmath>
#include <iostream>  
#include <cmath>  
using namespace std;  

int main()  
{  
	cout << ceil(2.3) << endl;  
	cout << ceil(3.8) << endl;  
	cout << ceil(-2.3) << endl;  
	cout << ceil(-3.8) << endl;

	return 0;  
}

输出结果

3 
4  
-2  
-3
  • floor - 对⼀个浮点数向下取整,需要头⽂件 <cmath>
#include <iostream>  
#include <cmath>  
using namespace std;  

int main()  
{  
	cout << floor(2.3) << endl;  
	cout << floor(3.8) << endl;  
	cout << floor(-2.3) << endl;  
	cout << floor(-3.8) << endl;  
	
	return 0;  
}

输出结果

2 
3  
-3  
-4
B2070 计算分数加减表达式的值
#include <iostream>
using namespace std;

int n;

int main()
{
    cin >> n;
    double sn = 0;
    int flag = 1;
    for (int i = 1; i <= n; i++)
    {
        sn += flag * 1.0 / i;
        flag = -flag;
    }
    printf("%.4f", sn);
    
    return 0;
}
#include <iostream>
using namespace std;
#include <cmath>

int n;

int main()
{
    cin >> n;
    double sn = 0;
    for (int i = 1; i <= n; i++)
    {
        sn += pow(-1, i-1) * 1.0 / i;
    }
    printf("%.4f", sn);
    
    return 0;
}
B2069 求分数序列和
#include <iostream>
using namespace std;
#include <cstdio>

int n;

int main()
{
    cin >> n;
    int p = 1, q = 2;
    double sum = 0;
    for (int i = 1; i <= n; i++)
    {
        sum += q * 1.0 / p;
        int tmp = p + q;
        p = q;
        q = tmp;
        //或者q = q + p; p = q - p;
    }
    printf("%.4f\n", sum);
    
    return 0;
}

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

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

相关文章

深度学习实战基础案例——卷积神经网络(CNN)基于DenseNet的眼疾检测|第4例

文章目录 前言一、数据准备二、项目实战2.1 设置GPU2.2 数据加载2.3 数据预处理2.4 数据划分2.5 搭建网络模型2.6 构建densenet1212.7 训练模型2.8 结果可视化 三、UI设计四、结果展示总结 前言 在当今社会&#xff0c;眼科疾病尤其是白内障对人们的视力健康构成了严重威胁。白…

(一)Axure制作移动端登录页面

你知道如何利用Axure制作移动端登录页面吗&#xff1f;Axure除了可以制作Web端页面&#xff0c;移动端也是可以的哦&#xff0c;下面我们就一起来看一下Axure制作移动端登录页面的过程吧。 第一步&#xff1a;从元件中拖入一个矩形框&#xff0c;并设置其尺寸为&#xff1a;37…

【Linux】【进程】epoll内核实现

【Linux】【进程】epoll内核实现 1 epoll提供的三个函数 1.1 epoll_create(int size); epoll_create()成功返回内核事件表的文件描述符&#xff0c;失败返回-1size 参数现在并不起作用 1.2 epoll_ctl(int epfd, int op, int fd, struct epoll_event *event); epoll_ctl()成…

ICRA-2025 | 具身导航如何跨越地形障碍?SARO:通过视觉语言模型实现地形穿越

作者&#xff1a;Shaoting Zhu, Derun Li, Linzhan Mou, Yong Liu, Ningyi Xu, Hang Zhao 单位&#xff1a;清华大学交叉信息研究院&#xff0c;上海交通大学电子信息与电气工程学院&#xff0c;浙江大学计算机科学与技术学院&#xff0c;宾夕法尼亚大学GRASP实验室&#xff0…

当 LSTM 遇上 ARIMA!!

大家好&#xff0c;我是小青 ARIMA 和 LSTM 是两种常用于时间序列预测的模型&#xff0c;各有优劣。 ARIMA 擅长捕捉线性关系&#xff0c;而 LSTM 擅长处理非线性和长时间依赖的关系。将ARIMA 和 LSTM 融合&#xff0c;可以充分发挥它们各自的优势&#xff0c;构建更强大的时…

终结磁盘空间紧张局面,针对性处理重复、无用文件

软件介绍 在如今这个数字化浪潮汹涌的时代&#xff0c;咱们的电脑存储空间就像一个杂乱无章的储物间&#xff0c;被各种各样的重复文件塞得满满当当。这些重复文件&#xff0c;犹如隐藏在暗处的 “空间小偷”&#xff0c;悄无声息地吞噬着宝贵的硬盘空间&#xff0c;使得原本井…

高校LabVIEW开发调试中的常见问题

在高校进行LabVIEW开发调试时&#xff0c;常常面临硬件选型不当、方案设计不合理、布线不专业以及人员流动性强等问题。这些问题可能影响项目的进展和质量。本文将总结这些问题&#xff0c;并给出具体的解决方案&#xff0c;帮助学生和团队更高效地开展开发工作。 ​ 1. 硬件选…

【故障处理】- RMAN-06593: platform name ‘Linux x86 64-bitElapsed: 00:00:00.00‘

【故障处理】- RMAN-06593: platform name Linux x86 64-bitElapsed: 00:00:00.00 一、概述二、报错原因三、解决方法 一、概述 使用xtts迁移&#xff0c;在目标端进行恢复时&#xff0c;遇到RMAN-06593: platform name Linux x86 64-bitElapsed: 00:00:00.00’报错。 二、报错…

K8S下载离线安装包所需文件

下载相关文件 官网下载地址集合https://kubernetes.io/zh-cn/releases/download/ 下载相关镜像 官网镜像描述 所有 Kubernetes 容器镜像都被部署到 registry.k8s.io 容器镜像仓库。 容器镜像支持架构registry.k8s.io/kube-apiserver:v1.32.0amd64, arm, arm64, ppc64le, …

如何使用Java语言在Idea和Android中分别建立服务端和客户端实现局域网聊天

手把手教你用Java语言在Idea和Android中分别建立服务端和客户端实现局域网聊天 目录 文章目录 手把手教你用**Java**语言在**Idea**和**Android**中分别建立**服务端**和**客户端**实现局域网聊天**目录**[toc]**基本实现****问题分析****服务端**Idea:结构预览Server类代码解…

ArcGIS注册开发账号及API KEY

注册与激活 Sign up | ArcGIS Location Platform 填写信息&#xff0c;然后邮箱收到激活邮件&#xff0c;激活&#xff0c;再补充信息。 参考 Tutorial: Create an API key | Documentation | Esri Developer 产生API KEY Tutorial: Create an API key | Documentation |…

java八股---java面向对象

面向对象 面向对象概述 面向对象和面向过程的区别 面向过程&#xff1a; 优点&#xff1a;性能比面向对象高&#xff0c;因为类调用时需要实例化&#xff0c;开销比较大&#xff0c;比较消耗资源;比如单片机、嵌入式开发、 Linux/Unix等一般采用面向过程开发&#xff0c;性能…

《Deepseek入门到精通》2.0版本《Deepseek赋能职场应用》清华大学

&#x1f680; 《Deepseek入门到精通》2.0版本重磅发布&#xff01; &#x1f4da; 全新升级&#xff0c;赋能职场应用&#xff01; 经过多次改版与优化&#xff0c;《Deepseek入门到精通》2.0版本已经正式上线&#xff01;这不仅是一份技术指南&#xff0c;更是你提升职场竞争…

使用c++实现红黑树的构建和插入

1.红黑树简介&#xff1a; 红黑树实际上和AVL都属于一棵用于存储数据的平衡二叉搜索树&#xff0c;但是这棵树并不是使用平衡因子去维持平衡的&#xff0c;而是结合限制条件对结点标红标黑去让树达到类似平衡的效果。 2.红黑树的限制条件和效率分析&#xff1a; 2.1限制条件…

在大型语言模型(LLM)框架内Transformer架构与混合专家(MoE)策略的概念整合

文章目录 传统的神经网络框架存在的问题一. Transformer架构综述1.1 transformer的输入1.1.1 词向量1.1.2 位置编码&#xff08;Positional Encoding&#xff09;1.1.3 编码器与解码器结构1.1.4 多头自注意力机制 二.Transformer分步详解2.1 传统词向量存在的问题2.2 详解编解码…

Jenkins项目CICD流程

Jenkins项目流程:1.配置git环境 git config --...2.把前后端的目录初始化位本地工作目录 #git init3.提交到本地git #git add ./ git commit -m "" git tag v14.然后提交到远程git(通过,用户,群组,项目,管理项目)git remote add origin http://...git push -…

【IDEA】2017版本的使用

目录 一、常识 二、安装 1. 下载IDEA2017.exe 2. 安装教程 三、基本配置 1. 自动更新关掉 2. 整合JDK环境 3. 隐藏.idea文件夹和.iml等文件 四、创建Java工程 1. 新建项目 2. 创建包结构&#xff0c;创建类&#xff0c;编写main主函数&#xff0c;在控制台输出内容。…

Git指南-从入门到精通

代码提交和同步命令 流程图如下&#xff1a; 第零步: 工作区与仓库保持一致第一步: 文件增删改&#xff0c;变为已修改状态第二步: git add &#xff0c;变为已暂存状态 bash $ git status $ git add --all # 当前项目下的所有更改 $ git add . # 当前目录下的所有更改 $ g…

Spring boot(maven) - Mybatis 超级入门版

前言&#xff1a; 通过实践而发现真理&#xff0c;又通过实践而证实真理和发展真理。从感性认识而能动地发展到理性认识&#xff0c;又从理性认识而能动地指导革命实践&#xff0c;改造主观世界和客观世界。实践、认识、再实践、再认识&#xff0c;这种形式&#xff0c;循环往…

Spark 性能优化 (三):RBO 与 CBO

1. RBO 的核心概念 在 Apache Spark 的查询优化过程中&#xff0c;规则优化&#xff08;Rule-Based Optimization, RBO&#xff09; 是 Catalyst 优化器的一个关键组成部分。它主要依赖于一组固定的规则进行优化&#xff0c;而不是基于统计信息&#xff08;如 CBO - Cost-Base…