C++语法基础:时间复杂度优化与高效输入

需积分: 0 0 下载量 41 浏览量 更新于2024-08-03 收藏 528KB DOCX 举报
"C++语法基础课程的初步学习记录,涵盖了质数、约数的概念,循环优化,菱形问题的解决,以及输入处理、高精度计算、指数运算和内存操作的相关知识。" 在C++语法基础课中,首先涉及到的是数学概念——质数和约数。质数是大于1且只有两个正因子1和自身的自然数,而约数则是能整除给定整数的数。在编程中,这两个概念常用于各种算法设计,例如素数筛法或者求最大公约数。 在循环结构的优化上,我们了解到可以通过将循环条件设置为`i*i<=n`来减小程序的时间复杂度,这是因为在寻找质数时,其因子不可能超过其平方根。这样的改进可以显著提高代码的运行效率。 关于菱形的打印,这里提到一个巧妙的方法,利用`while`循环配合多条语句执行。`while`循环后的括号里可以包含多条语句,这些语句会依次执行,最终返回最后一条语句的值。这种技巧在实现特定输出格式时非常有用。 在输入处理方面,`scanf`和`cin`是两种常用的输入函数。`scanf`在读取字符时不会自动过滤空格、回车、制表符,因此需要程序员手动处理。相比之下,`cin`会自动过滤这些空白字符,但其效率相对较低。`scanf`支持格式化读入,使得数据类型的匹配更加灵活。 高精度计算是C++中一个重要的部分,特别是在处理大整数时。这通常涉及自定义数据结构或库函数,以超越标准整型的限制。 指数运算在数学计算中常见,C++提供了幂运算符`^`,但需要注意它在某些环境下可能表示位运算而非指数。为了实现指数运算,可以使用循环或内置的`pow`函数。 `memcpy`函数来自`<cstring>`头文件,用于高效地复制内存区域。它是C++中处理大量数据移动或复制的工具,尤其在处理数组和结构体时非常有用。 最后,课程还提到了N阶的回字形二维数组,即输出类似“田”字形状的数组。解决思路是根据边界条件判断每个元素的值,确保它们位于边界内。 这个课程的初期内容涵盖了C++编程的基础知识点,对初学者来说是非常有益的学习起点。