数组例题——杨辉三角
杨辉三角,是二项式系数在三角形中的一种几何排列。在欧洲,这个表叫做帕斯卡三角形。帕斯卡(1623——1662)是在1654年发现这一规律的,比杨辉要迟393年,比贾宪迟600年。杨辉三角是中国古代数学的杰出研究成果之一,它把二项式系数图形化...
杨辉三角,是二项式系数在三角形中的一种几何排列。在欧洲,这个表叫做帕斯卡三角形。帕斯卡(1623——1662)是在1654年发现这一规律的,比杨辉要迟393年,比贾宪迟600年。杨辉三角是中国古代数学的杰出研究成果之一,它把二项式系数图形化...
前面介绍的都是一维数组,一维数组就像“一排容器”,能够存储若干相同数据类型的数据。对应的还有二维数组、三维数组……多维数组相当于一片容器的矩阵。 一、二维数组 前面介绍了一维数组就像“一排容器”,可以描述为一种“线性”的结构,那么二维数组就...
以我们熟悉的十进制数为例,十进制数只有0、1、2、3、4、5、6、7、8、9这10个基本数字(也称为数码)。同样的,二进制数只有0、1两个数码,八进制数只有0、1、2、3、4、5、6、7这八个数码。 对于 进制数 ,书写时如果某位上数字超...
在700多年前,意大利有一位著名数学家斐波那契在他的《算盘全集》一书中提出了这样一道有趣的兔子繁殖问题:兔子在出生两个月以后,就具有生殖后代的能力。假设一对兔子,每月都能生一对兔子,生出来的每一对小兔子,在出生两个月后,也每月生一对兔子。那...
前面介绍过如何判断一个正整数是否是素数,如果我们要筛选出范围内的所有素数,前面介绍的方法是使用循环枚举每一个整数并在循环体中使用循环来判断是否为素数: 其实还有一种效率更高的方法——筛选法。具体步骤如下: 首先将(这里以为例)的所有整数书写...
宾馆里有一百个房间,从1-100编了号。第一个服务员把所有的房间门都打开了,第二个服务员把所有编号是2的倍数的房间门作“相反处理”,第三个服务员把所有编号是3的倍数的房间门作“相反处理”…,以后每个服务员都是如此。编写程序计算当第100个服...
先来看一个问题:输入整数 和 ,输出公元 年 月的天数。 首先想到的是使用多分支结构来进行分类讨论: 其实还可以将一年里个月的天数存放到一个数组a里:月的天数存放到,月的天数存放到,……,月的天数存放到(抽象概括就是 月的天数存放在数组 元...
通过前面的学习,在解决问题时根据数据规模开一个很大的数组,并不意味着所有的元素都会被用来存储数据,本小节一起来学习数组元素的操作,包括数组末尾追加元素、插入元素和删除元素。 前面我们使用过数组来存储输入的数据: 实际操作中,并非数组的每个元...
前面的例题,特别是循环结构中的例题,涉及到读取大量的数据进行处理,但都是读入数据保存到变量后立即使用变量处理数据,处理结束后也不再使用这些数据了,所以往往在循环体中都是将数据输入到同一个变量就行。但是有时候,我们读入若干数据后,还需要将这些...
在计算机科学中,算法的时间复杂度是一个函数,它定性描述该算法的运行时间。时间复杂度常用大O符号表述,一般描述为与问题规模相关的函数,但不包括这个函数的低阶项和最高阶系数。 一、时间复杂度的定义 一个算法花费的时间与算法中基本语句的执行次数成...
编写程序解决问题,往往涉及到大量数据的处理,可能要输入批量的数据,也有可能要批量输出大量数据,这个时候往往要借助循环结构来处理。 将输入输出语句放在循环体中,可以很容易实现批量数据的输入输出。这里给出几种竞赛常用的输入输出结构,首先介绍输入...
一、阶乘累计求和 问题:已知的阶乘: (也就是 ),输入正整数,计算 分析:累计求和需要使用重复n次的循环,循环体内需要嵌套一个循环使用累乘结构计算,那么程序的框架可以是: 进一步实现框架中计算 的功能模块: 上面的程序使用了双重循环,可以...
正如选择结构if语句的if子句和else子句可以嵌套if语句一样,循环语句的循环体中也能出现循环语句,这就是循环的嵌套,也称为多重循环。就以钟表的分针和秒针为例,分针每走一格,秒针都要走完整一圈。分针走动多格可以用循环来描述,这是“大操作”...
一、累加求和 1.计算(也就是) 前面章节已经具体分析过并给出了参考代码: 注意上面程序循环体中的注释,我们以后再描述循环体中语句作用的时候,就会像 第i次循环:s累加上i 这样抽象地概括语句的作用,而不再是从细节上去说:第1次循环,s累加...
使用循环结构编程解决问题时,while循环和算法的流程图是一一对应的,最容易理解。除了while循环,C++还有高度结构化的for循环和与while相似的do...while循环。 一、for循环 首先来看两段功能相同的while循环和fo...
现实生活中,我们要处理的问题往往有很多规律性的重复操作,例如要找出上百万整数的最值,或者计算某次考试全班每位同学的平均分。这个时候仅仅使用前面的顺序结构和选择结构,对于重复性的每一步操作都写出对应的语句是不现实的,可以使用循环语句让计算机反...
当运行程序发现没有编译错误但是结果与预期不符的时候,往往是因为程序中出现了逻辑错误,有时候排查逻辑错误是一件痛苦的事情,有可能是不经意错误的写法(例如将判断相等写成了赋值语句),也有可能是对语言基础知识掌握不够好写出有漏洞的语句,也有可能是...
一、除法结果 【问题描述】 输入两个整数,按如下三种情况计算 的结果: 其实题目描述已经很清晰了,分三种情况处理,可以很容易写出if...else if...else的多重分支结构: 此外,这里介绍一种“特判”的编程思路,特判就是特殊判断处...
C++中除了if语句可以实现选择结构(分支结构),还有switch…case结构,可以实现多分支结构。 先来看一个例子,输入数字(0~6),输出数字对应的星期名称(0表示星期日)。先来看使用if...else if...语句的参考代码: 再...
前面一小节介绍了if语句的基本使用方法,其中条件的描述从最简单的单一数据、简单的关系表达式,再到复杂的多条件复合逻辑运算。本小节我们主要学习if语句的嵌套,也就是if语句的if子句部分或者else子句部分中又出现if语句的结构。 通过前一小...