1 / 16
文档名称:

算法竞赛入门经典作者刘汝佳.doc

格式:doc   大小:59KB   页数:16页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

算法竞赛入门经典作者刘汝佳.doc

上传人:水中望月 2019/11/19 文件大小:59 KB

下载得到文件列表

算法竞赛入门经典作者刘汝佳.doc

文档介绍

文档介绍:--------------------------校验:_____________-----------------------日期:_____________算法竞赛入门经典作者刘汝佳算法竞赛-入门经典-:输入、计算、输出记住算法竞赛的目标及其对程序的要求计算机速度快,很适合做计算和逻辑判断工作。本章首先介绍顺序结构程序设计,其基本思路是:把需要计算机完成的工作分成若干个步骤,然后依次让计算机执行。注意这里的“依次”二字——步骤之间是有先后顺序的。这部分的重点在于计算。接下来介绍分支结构程序设计,用到了逻辑判断,根据不同情况执行不同语句。本章内容不复杂,但是不容忽视。注意:编程不是看会的,也不是听会的,而是练会的,所以应尽量在计算机旁阅读本书,以便把书中的程序输入到计算机中进行调试,顺便再做做上机练****千万不要图快——如果没有足够的时间用来实践,那么学得快,忘得也快。(为帮助没有分值的朋友能下载,特此修改文档,以免上传不了)“本职”工作是计算,因此下面先从算术运算入手,看看如何用计算机进行复杂的计算。程序1-1计算并输出1+2的值intmain(){printf("%d\n",1+2);return0;}这是一段简单的程序,用于计算1+2的值,并把结果输出到屏幕。如果你不知道如何编译并运行这段程序,可阅读附录或向指导教师求助。即使你不明白上述程序除了“1+2”之外的其他内容,仍然可以进行以下探索:试着把“1+2”改成其他东西,而不要去修改那些并不明白的代码——它们看上去工作情况良好。下面让我们做4个实验:实验1:修改程序1-1,输出3-4的结果实验2:修改程序1-1,输出5×6的结果实验3:修改程序1-1,输出8÷4的结果实验4:修改程序1-1,输出8÷5的结果直接把“1+2”替换成“3+4”即可顺利解决实验1,但读者很快就会发现:无法在键盘上找到乘号和除号。解决方法是:用星号“*”代替乘号,而用正斜线“/”代替除号。这样,4个实验都顺利完成了。在C语言中,8/5的确切含义是8除以5所得商值的整数部分。同样地,(-8)/5的值是-1,不信可以自己试试。那么如果非要得到8÷程序1-2计算并输出8/5的值,保留小数点后1位intmain(){printf("%.1lf\n",);return0;}注意,百分号后面是个小数点,然后是数字1,再然后是小写字母l,最后是小写字母f,千万不能打错,包括大小写——在C语言中,大写和小写字母代表的含义是不同的。再来做3个实验:实验5:把%.1lf中的数字1改成2,结果如何?能猜想出“1”的确切意思吗?如果把小数点和1都删除,%lf的含义是什么?实验6:实验7:实验5并不难解决,但实验6和实验7的答案就很难简单解释了——真正原因涉及整数和浮点数编码,相信多数初学者对此都不感兴趣。原因并不重要,重要的是规范:根据规范做事情,则一切尽在掌握中。提示1-1:整数值用%d输出,实数用%lf输出从真正的语言规范来说,这个说法也有一点小问题,不过在算法竞赛中可以完全忽略。。这里的“整数值”指的是1+2、8/5这样“整数之间的运算”“实数”,或者说得更专业一点,叫“浮点数”“/”其实是“多面手”,它既可以拿来做整数除法,又可以拿来做浮点数除法。提示1-2:整数/整数=整数,浮点数/浮点数=浮点数。这条规则同样适用于加法、减法和乘法,不过没有除法这么容易出错——毕竟整数乘以整数的结果本来就是整数。算术表达式可以和数学表达式一样复杂,例如:程序1-3复杂的表达式计算intmain(){printf("%.8lf\n",1+2*sqrt(3)return0;}相信读者不难把它翻译成数学表达式:。尽管如此,读者可能还是有一些疑惑:5-“整数-浮点数”第1个问题相信读者能够“猜到”结果:整数-浮点数=浮点数。但其实这个说法并不准确。确切的说法是:整数先“变”成浮点数,然后浮点数-浮点数=浮点数。第2个问题的答案是:因为程序1-3中用到了数学函数sqrt。数学函数sqrt(x)的作用是计算x程序1-4A+B问题intmain(){inta,b;scanf("%d%d",&a,&b);printf("%d\n",a+b);return0;}“inta,b”声明了两个整型(即整数类型)变量a和b,然后读取键盘输入,并放到a和b中。注意a和b前面的&符号——千万不要漏掉,不信可以试试在学****编程时,“明