IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 蓝桥杯青少年创意编程省赛C++ 水下探测器(比较详细的解答) -> 正文阅读

[C++知识库]蓝桥杯青少年创意编程省赛C++ 水下探测器(比较详细的解答)

题目

水下探测器可以潜入湖中在任意水深进行科学探索。湖水的最大深度为 h 米,即它在湖底时到水面的距离,0<=h<=100;探测器最初的水下深度为 s 米,0<=s<=100;当探测器不在水面(当前深度大于 0)时,每个 u 指令可使它上浮 1 米,而当探测器在水面时,u 指令是无效的;当探测器不在湖底(当前深度小于 h)时,每个 d 指令可使它下沉 1 米,而当探测器在湖底时,d 指令是无效的;在执行到无效指令时,探测器不做任何操作而继续执行下一指令。

编程实现:?

根据给定的 h、s 和一个指令序列(由字符 u、d 组成的字符串,长度不超过 100),求出执行完整的指令序列后,探测器的水下深度。

?输入:

第一行:h 和 s,以空格分开。0<=s<=h<=100

第二行:长度不超过 100 的指令字符串,串中仅包含字母 u 或 d

输出:?

代表探测器在执行指令后的水下深度的数字。

【样例输入】:

9 1

uduudd

【样例输出】:

2

样例数据分析:?

水深9米,探测器在水下1米处,

字符u代表向上1米,探测器上浮到0米处

字符d代表向下1米,探测器下沉到1米处

字符u代表向上1米,探测器上浮到0米处

字符u代表向上1米,探测器已经在水面,不能上浮,依然在0米处

字符d代表向下1米,探测器下沉到1米处

字符d代表向下1米,探测器下沉到2米处

最终结果为2

感想 :

我知道这里一定有许多大佬,如果我哪里说的有问题,请大佬勿喷。

在发文章之前我也看了许多关于这道的解答,大多数都写得是for(int i=0;i<***.size();i++),其实这是一个很糟糕的写法,如果说字符串长度小的话,这样写没有任何问题,但是如果说非常长的字符串的话,没循环一次就要执行一次.size(),这无疑拉低了效率,所以我对其进行了一些改进。

随后的话,我说说我编译这道题时遇到的错误吧。(这么简单的题都还编译错了,太丢人了

因为没仔细看题目,所以最开始写判断的时候写出了这样

    	if(a[i]=='u'&&s>=0)
    	s--;
    	else if(a[i]=='d'&&s<=h)
    	s++;

运行了一编发现不对,然后又都了一遍题改出来了,希望大家不要像我一样马马虎虎的读题。

这道题的思路相信大家都有,我就直接上源码了(有不懂的可以私信我,但我不一定会回)

源码:

#include <iostream>
using namespace std;

int main()
{
	string a;//(纯属个人观点)string型比char好用
	int h,s,num;
	cin>>h>>s>>a;//输入数据
    num=a.size();//这里先计算出数组长度,写在for效率会下降
    for(int i=0;i<num;i++)
    {
    	if(a[i]=='u'&&s>0/*判断是否在水面*/)
    	s--;
    	else if(a[i]=='d'&&s<h/*判断是否在水低*/)
    	s++;
	}
	cout<<s;//输出
}

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-01 11:44:21  更:2021-09-01 11:46:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 20:44:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计