编程竞赛宝典:C++语言和算法入门

编程竞赛宝典:C++语言和算法入门

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

编辑推荐

信息学奥赛金牌教练精心之作,算法竞赛宝典。

内容简介

本书在介绍C++语言的同时,更加侧重于计算思维的培养,通过“一题多解”及“数学求解”等方法,拓展读者对题目的本质和内涵的思考与理解。

作者简介

作者张新华,中学高级教师,编程竞赛教练,长期从事中小学编程竞赛辅导工作。取得浙江大学计算机科学与技术学士学位、厦门大学软件工程硕士学位,获得2009年普通高中信息技术现场优质课比赛全国一等奖。培养的学生多次获得全国青少年信息学奥林匹克联赛国家一等奖及亚洲与太平洋地区信息学奥林匹克竞赛奖牌。著有《算法竞赛宝典》《信息学初级算法艺术C++版》《三维图形化C++趣味编程》。开发的软件有三维图形化C++编程工具Dev-C++智能开发平台和Python可视化界面设计软件Visual Python。

章节目录

版权信息

内容提要

本书编委会

前言

第01章 C++语言入门

1.1 我的第一个程序

1.1.1 并排的树(tree)

1.2 数据类型及运算

1.2.1 求两个整数的积和平均值(calc)

1.2.2 3个浮点数相加(add2)

1.2.3 捡石头(stone)

1.2.4 简单解方程(equation)

1.2.5 计算多项式的值(cal)

1.2.6 混合运算(cal2)

1.2.7 两个整数相乘(mul)

1.2.8 巨型人造天体(aster)

1.3 字符和字符串

1.3.1 字符金字塔(Pyramid)

1.3.2 ASCII值转字符(ASCII1)

1.3.3 小写字母转大写字母

1.3.4 大写字母转小写字母(ASCII2)

1.3.5 恺撒加密术

1.3.6 改进的加密术(encryption)

1.3.7 输出特殊字符(special)

1.3.8 费解的对话(chat)

1.4 输入/输出及格式控制

1.4.1 精确到小数点(fixed)

1.5 一些运算规则

第02章 基本结构

2.1 顺序结构

2.1.1 三位数分解(check)

2.1.2 反向输出四位数(reverse)

2.1.3 小数的四舍五入(rounding)

2.1.4 求等差数列末项(series)

2.1.5 徽章(badge)

2.1.6 计算梯形的面积(trapezoid)

2.1.7 二进制存储(bin)

2.1.8 校庆日(day)

2.1.9 计算星期几(week)

2.1.10 求余数(remainder)

2.1.11 求二次方根(sqrt)

2.1.12 勾股定理(triangle)

2.1.13 计算两点间的直线距离(distance)

2.1.14 海伦公式(helen)

2.1.15 计算三角形的面积(helen2)

2.1.16 计算练习时间(training)

2.2 选择结构

2.2.1 求绝对值(abs)

2.2.2 奇偶数判断(odd)

2.2.3 两个实数排序(sort)

2.2.4 3个实数排序(sort3)

2.2.5 判断两数的大小(compare)

2.2.6 等级制(grade)

2.2.7 翻转硬币(coin)

2.2.8 邮寄包裹(post)

2.2.9 选班级代表(election)

2.2.10 角色识别(role)

2.2.11 判断闰年(leap)

2.2.12 正方形内的点(point)

2.2.13 判断数的整除(div)

2.2.14 五分制(five)

2.2.15 等级划分(gradation)

2.2.16 简单计算器(cal)

2.2.17 运费计算(freight)

2.2.18 某年某月有几天(day)

2.2.19 判断某日是一年的第几天(day)

2.3 循环结构

2.3.1 计算n的阶乘(factorial)

2.3.2 电文保密(message)

2.3.3 求数的总和(power)

2.3.4 整数猜想(guess)

2.3.5 数字反转(rererse)

2.3.6 级数求和(sum)

2.3.7 投资收益(investment)

2.3.8 找规律1(array)

2.3.9 找规律2(array)

2.3.10 求圆周率(pi)

2.3.11 求最大公约数和最小公倍数(euclid)

2.3.12 求Sn的值(sn)

2.3.13 找规律3(array)

2.3.14 计算皮球的弹跳高度(ball)

2.3.15 显示ASCII码值对应的字符(ASCII)

2.3.16 兔子“永生”(rabbit)

2.3.17 计算平均分(average)

2.3.18 计算数列和(drug)

2.3.19 奇数求和(odd)

2.3.20 求水仙花数(flower)

2.3.21 求最大跨度值(Max)

2.3.22 求e的近似值(e)

2.3.23 求分子序列和(sum)

2.3.24 计算圆面积(square)

2.3.25 不能被3整除的数(sacred)

2.3.26 火柴游戏

2.3.27 九九乘法表1

2.3.28 九九乘法表2(99)

2.3.29 执行任务

2.3.30 谁是小偷(thief)

2.3.31 绘制矩形(draw)

2.3.32 不定方程的解(equation)

2.3.33 1的次数(sum1)

2.3.34 算式成立1(formula)

2.3.35 算式成立2(formula2)

2.3.36 算式成立3(formula3)

2.3.37 同构数(num)

2.3.38 判断质数(prime)

2.3.39 质因数分解(factor)

2.3.40 完美数(perfect)

2.3.41 防护罩(safe)

2.3.42 换零钱1(money)

2.3.43 换零钱2(money)

2.3.44 埃及分数(Egypt)

2.3.45 除式还原(div1)

第03章 竞赛模拟

3.1 文件读写

3.1.1 求中间数(mid)

3.1.2 修改作文(word)

3.2 制作测试数据

3.3 随机数据与对拍

3.3.1 模拟骰子

3.4 效率分析及简单优化

3.4.1 排行榜(list)

第04章 数组

4.1 一维数组

4.1.1 上楼梯(stairs)

4.1.2 逆序输出数组元素(reverse)

4.1.3 数组元素前移(move)

4.1.4 分糖(candy)

4.1.5 开关灯1(light1)

4.1.6 开关灯2(light2)

4.1.7 放花炮(fire)

4.1.8 冒泡排序法(sort)

4.1.9 车厢重组(train)

4.1.10 统计各数据的个数(number)

4.1.11 狼抓兔子(mystery)

4.1.12 求分数精确值1(exact)

4.1.13 求分数精确值2(exact)

4.1.14 复杂除式还原(div2)

4.1.15 求质数(prime)

4.2 二维数组

4.2.1 最强魔法师(powerful)

4.2.2 矩阵加法(matrixl)

4.2.3 杨辉三角(YangHui)

4.2.4 矩阵转置(matrix3)

4.2.5 扫雷游戏(game)

4.2.6 矩阵乘法(matrix2)

4.2.7 神奇矩阵

4.2.8 蛇形矩阵1(snake1)

4.2.9 回型方阵(matrix)

4.2.10 蛇形矩阵2(snake)

4.2.11 蛇形矩阵3(snake)

4.3 字符数组

4.3.1 求逆序字符串(reverse)

4.3.2 求数的和(sumN)

4.3.3 查找子串(findchar)

4.3.4 字符串游戏(string)

4.3.5 柱状图(chart)

4.3.6 字符串排序(charsort)

4.3.7 最大整数(BigNum)

4.3.8 统计单词数(stat)

4.3.9 子串包含问题(substr)

4.3.10 命名(namenum)

4.3.11 古风排版(typesetting)

4.4 滚动数组

4.4.1 截铁丝(line)

4.4.2 太阳能电池(battery)

第05章 阶段检测1

5.1 笔试检测

5.2 上机检测

5.2.1 猴子吃桃(peach)

5.2.2 卖宝石(stone)

5.2.3 取石子游戏(stone)

5.2.4 打电话(telephone)

5.2.5 神秘字符串(ride)

5.2.6 合法C++标识符(c)

5.2.7 求立方根(cuberoot)

5.2.8 插入排序(insert)

5.2.9 排名次(billing)

5.2.10 ISBN(isbn)

5.2.11 救援顺序(rescue)

5.2.12 比例简化(ratio)

5.2.13 黑色星期五(friday)

5.2.14 序列变换(change)

5.2.15 打猎(hunt)

5.2.16 矩阵排序(sort)

5.2.17 “语言之争”(language)

5.3 头脑风暴

5.3.1 五位数

5.3.2 六位数

5.3.3 计算S的值(tower)

5.3.4 求0的个数(factorial)

5.3.5 多项式求值(poly)

5.3.6 二分法求方程的解(equation)

5.3.7 求最大子序列和(sum)

5.3.8 猴子选大王(monkey)

5.3.9 NOI(NOI)

5.3.10 NOI字符串(NOI)

5.3.11 组合数问题(problem)

第06章 函数

6.1 初识函数

6.1.1 浮点数求最大值(Max)

6.1.2 判断平方数(square)

6.1.3 哥德巴赫猜想(Goldbach)

6.1.4 约分(comm)

6.1.5 素数回文数(Prime4)

6.1.6 丑数(ugly)

6.1.7 三质数(prime5)

6.2 库函数简介

6.3 常用的变量类型

6.4 数组作为函数参数

6.5 函数的递归调用

6.5.1 逆序字符(reverse)

6.5.2 逆序数(reverse)

6.5.3 求阶乘(factorial)

6.5.4 最大公约数和最小公倍数

6.5.5 复杂算式(f)

6.5.6 母牛数(cow)

6.5.7 矩阵行走(walk)

6.5.8 计算函数值(f)

6.5.9 汉诺塔1(hanoi1)

6.5.10 汉诺塔2(hanoi2)

第07章 阶段检测2

7.1 笔试检测

7.2 上机检测

7.2.1 RSA加密算法(RSA)

7.2.2 单词排序(word)

7.2.3 回文日期(date)

7.2.4 多项式输出(poly)

7.2.5 最大公约数和最小公倍数问题(b)

7.2.6 子矩阵求和(matrix)

7.2.7 石头剪刀布(rps)

7.2.8 公约数最大(com)

7.2.9 无线网络发射器选址(wireless)

7.2.10 机器翻译(translate)

7.2.11 玩具谜题(toy)

7.2.12 cantor表(cantor)

7.2.13 计算器的改良(calc)

7.2.14 维吉尼亚密码(vigenere)

7.2.15 计算系数(factor)

7.2.16 大炮互攻(cannon)

7.2.17 解方程(equation)

7.2.18 shlqsh数(shlqsh)

第08章 指针

8.1 地址和指针

8.2 指针变量的应用

8.3 数组与指针

第09章 结构体

9.1 结构体及其应用

9.2 结构体与指针

9.3 课后练习

9.3.1 选举(kind)

9.3.2 统计成绩(score)

9.3.3 生日(birthday)

第10章 位运算与进制

10.1 位运算

10.1.1 整数幂(power)

10.1.2 二进制半整数(bin)

10.2 进制转换

10.2.1 N进制数加法(add)

10.2.2 二进制数分类(classify)

10.2.3 确定进制(num)

10.2.4 K进制数转L进制数

第11章 STL编程

11.1 sort排序算法

11.1.1 单词排序(WordSort)

11.1.2 志愿者选拔(voluntary)

11.1.3 奖学金(scholar)

11.1.4 导弹拦截(missile)

11.2 lower_bound/upper_bound

11.3 vector向量容器

11.3.1 电话列表(telephone)

11.3.2 普通平衡树(BalanceTree)

11.4 pair容器

11.4.1 奇怪的排序(OddSort)

11.5 set集合容器

11.5.1 问卷调查(random)

11.5.2 两倍(Double)

11.6 multiset多重集合容器

11.6.1 12!配对(12)

11.6.2 01串排序(Sort01)

11.6.3 卡片游戏(CardGame)

11.7 deque双端队列容器

11.7.1 鸡蛋队列(egg)

11.8 list双向链表容器

11.8.1 队列训练(train)

11.9 map映照容器

11.9.1 射箭(toxophily)

11.9.2 漂亮数字(pretty)

11.9.3 彩色石头(stone)

11.9.4 水果(fruit)

11.9.5 A-B(sub)

11.10 排列组合关系算法

11.10.1 进制位(system)

11.11 stable_sort 稳定排序

11.11.1 给朋友排序(friends)

11.12 multimap多重映照容器

11.12.1 银行业务(bank)

11.13 stack堆栈容器

11.13.1 字符栈(CharStack)

11.13.2 表达式括号匹配1(bracket1)

11.13.3 表达式括号匹配2(bracket2)

11.13.4 表达式求值(expr)

11.14 queue队列容器

11.14.1 海港(port)

11.14.2 团体队列(queue)

11.15 priority_queue优先队列容器

11.15.1 推销员(salesman)

11.15.2 有序表最小和(MinSum)

附录A ASCII 对照表

附录B C++语言的关键字

附录C C++语言运算符及其优先级

附录D 常用函数库

附录E 常用函数

附录F 如何使用在线评测网站

编程竞赛宝典:C++语言和算法入门是2021年由人民邮电出版社出版,作者张新华。

得书感谢您对《编程竞赛宝典:C++语言和算法入门》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

你可能喜欢
现代C++语言核心特性解析 电子书
通过理论结合实践的内容编排,深入探讨C11到C20引入的语言核心特性。
VisualC++从入门到精通 电子书
  《Visual C从入门到精通》,超级畅销的C语言经典著作,100000读者的共同选择,长期雄踞各大书店、网店排行榜前列。本次改版在传承经典的基础上,对内容进行全面扩充,大量补充典型案例,贴近实战,帮助读者迅速积累开发经验。      强大的编委会阵容,业界专家倾力推荐   中国软件行业协会教育与培训委员会 秘书长 邱钦伦   微软开发工具及平台事业部 产品经理 胡德民   Sun亚洲全球化中心 技术总监 刘杰   龙马创新教育研究室 总裁 孔长征   河南省863软件孵化器有限公司 总经理 翟为唐   广东拓思软件科学园有限公司 副总经理 黄万民   西安863软件孵化器有限公司 总经理 楼文晓   郑州大学信息工程学院 副院长 周清雷   华大锐志软件人才孵化基地 技术总监 微软有价值专家(MVP) 王豫翔   NEC信息系统(中国)有限公司 开发部长 石少峥   东忠集团 副总裁 李朝阳   《程序员》杂志、CSDN技术专家 尹成   51CTO.com 技术总监 陈德勇   微软有价值专家(MVP) 杨云         DVD光盘超值赠送   21小时全程同步教学录像,一线教学和开发人员贴心讲解,配合图书高效学习   18小时价值6000元的Oracle项目实战教学录像,帮您轻松学会Oracle数据库   107个典型范例、5个经典应用程序开发指导、6个完整项目,在实战中掌握VC编程   19个实战测试及解析,举一反三,掌握更透彻   8个超值资源大放送   超值资源1:118 页库函数查询手册   超值资源2:224 页MFC查询手册   超值资源3:53 个Visual C常见错误及解决方案   超值资源4:100 个Visual C开发经验及技巧大汇总   超值资源5:100 个Visual C常见面试题   超值资源6:软件开发文档模板   超值资源7:Visual C 程序员职业规划电子书   超值资源8:Visual C 程序员面试技巧电子书      零基础、入门级的讲解——无论读者是否从事计算机相关行业,是否接触过Visual C,是否使用Visual C开发过项目,都能从本书中找到起点。   超多、实用、专业的范例和项目——本书结合实际工作中的范例,逐一讲解Visual C的各种知识和技术。还以实际开发项目来总结本书所学内容,帮助读者在实战中掌握知识,轻松拥有项目经验。   随时检测自己的学习成果——每章首页罗列了“本章要点”,以便读者明确学习方向。每章的“实战练习”则根据所在章的知识点精心设计而成,读者可以随时自我检测,巩固所学知识。   细致入微、贴心提示——本书在讲解过程中使用了“提示”、“注意”、“ 技巧”等小栏目,帮助读者在学习过程中更清楚地理解基本概念、掌握相关操作,并轻松获取实战技巧。
C++案例趣学 电子书
本书主要讲解C++语法知识,按知识点组织课程,适合中小学教师和学生学习,共22课。
C语言从入门到精通(第4版) 电子书
本书以零基础入门为宗旨,用范例引导读者学习,深入浅出地介绍了C语言的相关知识和实战技能。
计算机图形学编程(使用OpenGL和C++)(第2版) 电子书
本书以OpenGL和C++作为工具,介绍计算机图形学编程的相关内容。