C++基础语法
本文最后更新于 2025年11月8日 晚上
基础语法
C++中的类型
C++是一种强类型语言,支持多种数据类型。以下是一些常见的C++数据类型:
- 整型(int)
- 浮点型(float, double)
- 字符型(char)
- 布尔型(bool)
- 字符串(string)
- 数组(array)
- 指针(pointer)
- 结构体(struct)
- 类(class)
他们的范围:
- int: -2,147,483,648 到 2,147,483,647($$-2^{31}$$ 到 $$2^{31}-1$$)
- float: 约 ±3.4E±38 (7 位有效数字)($$-3.4 \times 10^{38}$$ 到 $$3.4 \times 10^{38}$$)
- double: 约 ±1.7E±308 (15 位有效数字)$$-1.7 \times 10^{308}$$ 到 $$1.7 \times 10^{308}$$)
- char: 单个字符,通常占用1字节
类型的转换
洛谷P5704 - 字符大写转换
1 | |
题目笔记
洛谷P5721
1 | |
本题的关键在于抓组两层嵌套循环的规律,外层循环控制行数,内层循环控制每行打印的数字个数。
而且要想到使用counter变量来记录当前要打印的数字,并在每次打印后递增。
有可能会想到使用单层循环,并使用i来记录要打印的数字:
笔者原本想要使用单层循环,但是发现很难控制每行打印的数字个数,所以最终选择了双层循环的方式。
最后通过网络查询到了单层循环的实现方法:
使用一个变量来记录这一行要打印的数字的个数,另一个变量记录已经打印的数字的个数,当已经打印的数字个数等于这一行要打印的数字个数时,换行并将要打印的数字个数减一,使已打印的数字的个数归零。
1 | |
这样的代码更难想到,但是不难发现,两种算法是复杂度是相同的,都是O(n^2),因为要输出的数字总数是n(n+1)/2.
C++基础语法
https://www.mirstar.net/2025/11/01/cpp-fundamental/