蓝桥杯-洛谷刷题-day2(C++)

devtools/2024/11/17 19:42:17/

目录

1.小写字母与大写字母的转换

2.使用string(额外开一章持续补充)

        i.访问字符串最后一位

3.保留N位小数输出

        i.C++侧

        ii.C语言侧

        iii.总结        

4.高精度相加

        i.各种数据类型转字符型

        ii.三元运算符

        iii.循环条件中的carry


1.小写字母与大写字母的转换

        大写从65开始,小写从97开始,之间差了32.

        输入小写,输出大写:

#include<iostream>
using namespace std;int main()
{char a;cin >> a;a = a - 32;cout << a;return 0;
}

2.使用string(额外开一章持续补充)

        i.访问字符串最后一位

        此处,只写刷题时遇到的

//需要的库
#include <string>
//定义
string s;
//获取长度
int len = s.length();

        s.length()获取s 中,有多少字符,是实际长度。

        在长度未知的情况下,可通过s[len - 1] 访问s 的最后一个字符(len取自上文代码的变量)。 

        值得注意的一个很简单但一忽略的点,当需要键盘输入string时,对string进行操作的函数一定要写在输入之后,

int main()
{string s;cin >> s;//输入之后,再操作int len = s.length();
}

3.保留N位小数输出

        i.C++侧

        需要<iomainip>库,

#include <iomanip>double t = 9;
cout << t << endl;
cout << fixed << setprecision(3) << t << endl;

         输出结果应该是:

9

9.000

        其中,cout << fixed,会让之后输出的所有东西都变为浮点型,注意是所有。

        之后,cout << setprecision(N),设置输出的浮点型小数点后保留几位,这个的影响也是所有。(precision的意思是精度)

        拓:解除fixed 的设置,只需要插入代码,cout << defaultfloat;  即可。

        拓:关于整型的多位输出,可以回顾蓝桥杯-洛谷刷题-day1(C++)

        ii.C语言侧

double x;
printf("%.3f", x);

        iii.总结        

        C++的更安全,不易报错,C语言的更直接。 

4.高精度相加

#include <iostream>  
#include <iomanip>  //操纵器,个位数字,多位输出;保留n位小数输出
#include <cmath>    //向上取整函数ceil
#include <string>using namespace std;
//大数字计算,运用字符,从末尾开始加,超过10的,只取个位进行拼接,暂存十位进入下一个循环string Add(string a, string b)
{string result;//两串的末尾指针int i = a.length() - 1;int j = b.length() - 1;//暂存十位int carry = 0;//用循环分别逐个取出字符,转换类型,进行加减while (i >= 0 || j >= 0 || carry > 0)   //有一个真就会循环,当carry不为零时,说明有多出来的十位,需要再运算{int digitA = (i >= 0) ? a[i] - '0' : 0;int digitB = (j >= 0) ? b[j] - '0' : 0;int sum = digitA + digitB + carry;//转为字符型,保留个位result = to_string(sum % 10) + result;//保留十位carry = sum / 10;i--;j--;}return result;
}int main()
{string a, b;cin >> a >> b;cout << Add(a, b);return 0;
}

C++ 中大数字相加是个很复杂的过程,需要借助字符型来实现, 

        i.各种数据类型转字符型

        to_string() 函数

        ii.三元运算符

        有效简化代码,当循环中,有两种递减或递增指标,且两个指标的大小不同,会出现一个优先到达极限时,三元运算符,可以持续调整达到极限后的指标带来的负面影响,太妙了。

        iii.循环条件中的carry

        真正地考虑到多出来的十位的具体处理,对多余项的认真处理。


http://www.ppmy.cn/devtools/134772.html

相关文章

HTTP的版本演进,以及他们之间的区别

HTTP (Hypertext Transfer Protocol) 是一种用于分布式、协作式和超媒体信息系统的应用层协议。随着互联网的发展&#xff0c;HTTP 协议也经历了多个版本的演进&#xff0c;以适应不同的需求和技术进步。 版本 HTTP 1.0 请求响应模型&#xff1a;HTTP 1.0 采用的是简单的请求…

企业无线解决方案

前言 无线广域网 无线广域网WWAN&#xff08;Wireless Wide Area Network&#xff09;目前已经成为了全球通信系统的核心组成部分&#xff0c;我们所熟悉的2G网络、3G网络和4G网络&#xff08;LTE&#xff09;等等都是WWAN的典型代表。通过WWAN&#xff0c;用户几乎可以在任何…

JavaScript方法修改 input type=file 样式

html中的<input type "file">的样式很难修改&#xff0c;又跟页面风格很不匹配。我就尝试了几种方法&#xff0c;但是不管是用label还是用opacity:0都很麻烦&#xff0c;还老是出问题&#xff0c;所以最后还是用JavaScript来解决。 下面附上代码&#xff1a;…

Codeforces Round 987 (Div. 2) ABCD

链接&#xff1a; Codeforces Round 987 (Div. 2) A:Penchick and Modern Monument 大意&#xff1a; 单调非增序列操作多少步变成单调非减 思路&#xff1a; 最后的数一定是相同的&#xff0c;为出现次数最多的那个数&#xff0c;结果就是n减去出现次数最多的数 代码&…

要卸载 Grafana 或者从 TiDB 集群中删除 Grafana 服务节点,你需要按以下步骤操作

要卸载 Grafana 或者从 TiDB 集群中删除 Grafana 服务节点&#xff0c;你需要按以下步骤操作&#xff0c;具体步骤取决于你想要卸载的是 Grafana 软件 还是 TiDB 集群中的 Grafana 服务节点。下面是两种情况的卸载步骤。 1. 卸载 TiDB 集群中的 Grafana 节点 如果你只想卸载 …

某某科技笔试题

&#xff08;15题&#xff0c;45分钟&#xff0c;闭卷&#xff09; 一、( 8 分 &#xff09;请问以下程序输出什么结果&#xff1f; char *getStr(void) 。 &#xff5b; char p[] "hellow world"; return p; &#xff5d; void test(void) &#xff5b; ch…

SQLite 和 MySQL语法区别

SQLite 和 MySQL 在 SQL 语法上有一些差异&#xff0c;这些差异主要体现在数据类型、函数、表和索引的管理等方面。以下是一些主要的不同之处&#xff1a; 1. 数据类型 SQLite 支持的数据类型包括&#xff1a;TEXT, INTEGER, REAL, BLOB。动态类型系统&#xff0c;允许在插入…

ASUS/华硕灵耀X双屏Pro UX8402Z 原厂Win11-22H2系统 工厂文件 带ASUS Recovery恢复

华硕工厂文件恢复系统 &#xff0c;安装结束后带隐藏分区&#xff0c;一键恢复&#xff0c;以及机器所有驱动软件。 系统版本&#xff1a;windows11 原厂系统下载网址&#xff1a;http://www.bioxt.cn 需准备一个20G以上u盘进行恢复 请注意&#xff1a;仅支持以上型号专用…