算法竞赛入门经典第2版第1章(代码片段)

ljlzl ljlzl     2023-01-31     737

关键词:

学习目标:

  熟悉C语言程序的编译和运行

  学会编程计算并输出常见的算术表达式的结果

  掌握整数和浮点数的含义和输出方法、声明方法、读入方法

  掌握数学函数的使用方法

  初步了解变量的含义

  掌握变量交换的三变量法

  理解算法竞赛中的程序三部曲:输入、计算、输出

  记住算法竞赛的目标及其对程序的要求

                                                          

                                                                         1.2 变量及其输入

1.如果一定要把浮点数值存放在一个int型变量中,将会丢失部分信息——不推荐这样做。

例1-1  圆柱体的表面积

#include <stdio.h>

int main()

    const double pi = acos(-1.0);
    double r,h,s1,s2;
    scanf("%lf %lf",&r,&h);
    s1 = 2*pi*r*r;
    s2 = 2*pi*r*h;
    printf("Area = %.3f
",s1+s2);
    return 0;

(1).不要让程序“按任意键退出”(例如,调用system(“pause”),或者添加一个多余的getchar()),因为不会有人来“按任意键”的。

(2).在算法竞赛中,不要使用头文件conio.h,不要使用getch(),getche(),gotoxy()和clrscr()函数。

 

                                                                      1.3 顺序结构程序设计

例1-2 三位数反转

#include <stdio.h>

int main()

    int a,a1,a2,a3,b;

    scanf("%d",&a);

    a1 = a/100;
    a2 = (a-a1*100)/10;
    a3 = a%10;
    b = a3*100+a2*10+a1;

    printf("%d
",b); //考虑最后一位为0时的输出,%d或%03d

    return 0;

(1).注意数的最后一位为0时如何取值。

 

例1-3 交换变量

#include <stdio.h>

int main()

    /* 三变量法
    int a,b,temp;
    scanf("%d %d",&a,&b);
    temp = a;
    a = b;
    b = temp;
    printf("%d %d",a,b);*/
    
    //最佳的方法:
    int a,b;
    scanf("5d %d",&a,&b);
    printf("%d %d",b,a);
    return 0;

(1).算法竞赛是在比谁能更好地解决问题,而不是在比谁写的程序看上去更高级。

                                                                        

                                                                                 1.4 分支结构程序设计

例1-4 鸡兔同笼

#include <stdio.h>

int main()

    int m,n,j,t;
    scanf("%d %d",&n,&m);
    t = (m-2*n)/2;
    j = n-t;

    if(m%2 == 1 || j<0 || t<0)
        printf("No answer");
    else
        printf("%d %d
",j,t);
    return 0;

(1).和其他语言不同的是,在C语言中单个整数也可以表示真假,其中0为假,其他值为真。

(2).短路运算

 

例1-5 三整数排序

 

#include <stdio.h>

int main()

    int a,b,c,t;
    scanf("%d %d %d",&a,&b,&c);

    if(a>b)
    
        t = a;a = b;b = t;
    
    if(a>c)
    
        t = a;a = c;c = t;
    
    if(b>c)
    
        t = b;b = c;c = t;
    
    printf("%d %d %d",a,b,c);
    return 0;

 

《算法竞赛入门经典(第2版)》pdf下载在线阅读,求百度网盘云资源

《算法竞赛入门经典(第2版)》(刘汝佳)电子书网盘下载免费在线阅读资源链接:链接:https://pan.baidu.com/s/1hn9oYzCM-fjrw649WmvKyg 提取码:6bov  书名:算法竞赛入门经典(第2版)作者:刘汝佳豆瓣评分:8.9出版社:清... 查看详情

算法竞赛入门经典(刘汝佳)课后习题前三章答案

本文转载:第一章习题1-1#include <stdio.h>int main(){int a,b,c;double d;scanf("%d%d%d",&a,&b,&c);d=(double)(a+b+c);printf("%.3lf ",d/3.0);return 0;}习题1-2#include  查看详情

《算法竞赛入门经典(第二版)》pdf

...下载内容简介  · · · · · ·《算法竞赛入门经典(第2版)》是一本算法竞赛的入门与提高教材,把C/C++语言、算法和解题有机地结合在一起,淡化理论,注重学习方法和实践技巧。全书内容分为12章,... 查看详情

算法竞赛入门经典(第2版)+算法艺术与信息学竞赛pdf-高清版免费下载

下载地址:网盘下载备用地址:网盘下载  查看详情

算法竞赛入门经典5.2stl初步(代码片段)

1.  排序和检索,学会使用sort排序,以及low_bound函数RajuandMeenalovetoplaywithMarbles.Theyhavegotalotofmarbleswithnumberswrittenonthem.Atthebeginning,Rajuwouldplacethemarblesoneafteranotherinascendingorderofthenumbersw 查看详情

算法竞赛入门经典第二版第二章习题及思考题(代码片段)

enmmmmmm】 大部分好像除了最后一个思考题都很简单代码如下#include<iostream>#include<cstring>#include<cstdio>#include<cmath>intmain()/*for(inti=100;i<=999;i++)inta=i/100;intc=i%10;intb=(i-a*10 查看详情

算法入门经典第六章例题6-14abbott的复仇(abbott'srevenge)bfs算法实现

 SampleInput31N33 11WLNR* 12WLFNRER* 13NLER* 21SLWRNF* 22SLWFELF* 23SFREL* 0SampleOutput(3,1)(2,1)(1,1)(1,2)(2,2)(2,3)(1,3)(1,2)(1,1)(2,1) (2,2)(1,2)(1,3)( 查看详情

算法竞赛-入门经典计算并输出1+2的值

1.练习目的:计算并输出1+2的值2.源码:1#include<stdio.h>2intmain()3{45printf("%d ",1+2);6return0;7}3.总结:略... 查看详情

算法竞赛入门经典_4.3_递归

...归头,二是递归体。我们使用gcc调试工具H:编程书籍学习算法竞赛入门经典2代码算法入门经典第四章>bf‘b‘不是内部或外部命令,也不是可运行的程 查看详情

python3入门机器学习经典算法与应用

 第1章欢迎来到Python3玩转机器学习1-1什么是机器学习1-2课程涵盖的内容和理念1-3课程所使用的主要技术栈第2章机器学习基础2-1机器学习世界的数据2-2机器学习的主要任务2-3监督学习,非监督学习,半监督学习和增强学习2-4批... 查看详情

[算法竞赛入门经典]crosswordanswersacm/icpcworldfinals1994,uva232(代码片段)

DescriptionAcrosswordpuzzleconsistsofarectangulargridofblackandwhitesquaresandtwolistsofdefinitions(ordescriptions).Onelistofdefinitionsisfor“words”tobewrittenlefttorightacrosswhitesquaresintherowsand 查看详情

[算法竞赛入门经典]kickdownacm/icpcneerc2004,uva1587(代码片段)

DescriptionAresearchlaboratoryofaworld-leadingautomobilecompanyhasreceivedanordertocreateaspecialtransmissionmechanism,whichallowsforincrediblyefficientkickdown—anoperationofswitchingtolowergear.After 查看详情

[算法竞赛入门经典]messagedecoding,acm/icpcworldfinals1991,uva213(代码片段)

DescriptionSomemessageencodingschemesrequirethatanencodedmessagebesentintwoparts.Thefirstpart,calledtheheader,containsthecharactersofthemessage.Thesecondpartcontainsapatternthatrepresentsthemessage.Yo 查看详情

[算法竞赛入门经典]repeatingdecimals,acm/icpcworldfinals1990,uva202(代码片段)

DescriptionThedecimalexpansionofthefraction1/33is0.03,wherethe03isusedtoindicatethatthecycle03repeatsindefinitelywithnointerveningdigits.Infact,thedecimalexpansionofeveryrationalnumber(fraction)hasare 查看详情

算法竞赛入门经典习题2-10排列(permutation)

习题2-10     用1,2,3。....,9组成3个三位数abc。def和ghi,每一个数字恰好使用一次,要求abc:def:ghi=1:2:3。输出全部解。#include<stdio.h>#include<stdlib.h>#include<string.h>intmain(intargc,char*ar 查看详情

《算法竞赛入门经典(第二版)》习题解答——第二章(代码片段)

文章目录一、习题2-1水仙花数(daffodil)二、习题2-2韩信点兵(hanxin)三、习题2-3倒三角形(triangle)四、习题2-4子序列的和(subsequence)五、习题2-5分数化小数(decimal)六、习题2-6排列࿰... 查看详情

算法入门经典第六章例题6-5移动盒子

例题6-5移动盒子(BoxesinaLine,UVa127675)问题给定一行盒子,从左到右编号依次为1,2,...,n.可以执行以下命令:1XY 把盒子X移动到Y的左边(如果已经在左边,忽略此命令)2XY 把盒子X移动到Y右边(如果X已经在Y的右边,忽... 查看详情

算法竞赛入门经典_2_变量及其输入

代码://2017-6-19变量及其输入#include<stdio.h>#include<math.h>voidAAndB();voidCircleZtArea();intmain(){AAndB();CircleZtArea();return0;}voidAAndB(){inta,b;scanf("%d%d",&a,&b);//scanf("%d",a) 查看详情