蓝桥杯备赛——第一弹!

准备工作

噔噔噔~
先自报家门,CS双非本科在读。此次报名蓝桥杯C/C++,一方面为了提升自我,一方面也为保研积累竞赛经验。为什么选择C/C++呢?
1.本人所在学校以C入门,自认为相比其他语言基础较好。
2.据相关资料了解,每年蓝桥杯C/C++报名人数最多,大佬最多,但这恰恰反映另一问题——资料更多,可获得的经验更多!
3.最后,保持好心态,不断的积累和足够的自信也是比赛的加分项!

参考资料

我主要参考《算法竞赛入门经典(第二版)》这本书,更偏入门一点。如需电子版的可以留言邮箱,私发给你们~

第一章 程序设计入门

  1. C语言严格区分大小写。

  2. 算法竞赛中,严格按照样例输入与样例输出,不要打印提出信息,如printf(“Please input a number:”)。输出完毕后应立即终止程序,且每行输出均应以 回车符 结束,包括最后一行。

  3. 除非特别说明,每行的行首不应有空格,但行末通常可以有多余空格。另外,输出的每两个数或者字符串之间应以单个空格隔开。

  4. 对于常数的声明,尽量用const关键字。如 const double pi = acos(-1.0)

  5. 对于三位数,取百位,十位,个位分别用n/100, n/10%10, n%10,可以总结为**从高位到低位用"/", 从低位到高位用“%”,中间各位数灵活结合“/”和“%”。注意对于这种反转输出,考虑最高位是否为0的情况,如120输出为021还是21。

  6. 赋值a=b之后,变量a原来的值被覆盖,但b的值不变,而不是“缺失为空”。

  7. 二变量交换的三种方法
    (1) t=a;a=b; b=t;(适用范围更广)

    (2) a=a+b; b=a-b; a=a-b;(适用范围较窄,且只有定义了加减法的数据类型才能使用)

    (3) 算法竞赛中,只考察程序解决问题的能力,而不关心才用了什么方法,故变量交换的最优解 如下:
    scanf(“%d%d”,&a,&b);
    printf("%d %d\n", b, a);

  8. C语言中,0为假,非0为真。

  9. C语言中的逻辑运算符都是短路运算符,即一旦能够确定整个表达式的值,就不再继续运算。

  10. fflush(stdin)函数清除缓冲区。

  11. C语言数据类型
    在这里插入图片描述
    short、int、long、char、float、double 这六个关键字代表C 语言里的六种基本数据类型。在不同的系统上,这些类型占据的字节长度是不同的,具体可以用sizeof测试一下即可。

类型存储字节表示范围
int4-2147483648~2147483647
short int2-32768~+32767
long4-2147483648~2147483647(二十亿,约 101010101 0 10 10101010 10^{10} 1010101010101019)
float4-3.4*10^38~+3.4*10^38(有效位数6~7)
double8-1.7*10^-308~1.7*10^308(有效位数15~16 )

在这里插入图片描述

  1. 逻辑非的优先级最高,逻辑与次之,逻辑或最低,即:!(非) → &&(与) → ||(或)
    记忆口诀:not(非) and(与) or(或)

  2. 牵涉到角度计算时,例如:sin(x),cos(x)等,这里的x都是弧度,而不是直接的角度。因此,在计算对应角度的三角函数时,需要先将角度转换成弧度再计算。

    弧度和角度的转换公式是:
    角度=弧度180.0f/PI
    弧度=角度
    PI/180.0f

总结

本系列文章是在备赛2020蓝桥杯期间基于《算法竞赛入门经典第二版》的学习笔记,欢迎指出不足之处!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值