随笔分类 -  算法竞赛入门经典2第四章

函数和递归,重头戏要来了,加油!
摘要:到目前为止,本书所需要介绍的C语言知识已经全部讲完了,本章涉及了指针和递归 头文件,副作用及其他 读者应该已经知道main函数也是一个普通的函数(甚至可以递归调用),其返回值将告知操作系统,在算法竞赛中应当总是等于0,唯一的谜团就是#include<stdio.h> 笔者尝试的代码如下 点击查看代码 阅读全文
posted @ 2021-10-20 19:01 banyanrong 阅读(63) 评论(0) 推荐(0) 编辑
摘要:1.循环数组一般不推荐通过建立相同的数组不断叠加来实现,虽然理论上是可行的,但是会浪费极大的空间,特别是对于大数据的情况下,程序一般会马上挂掉 2.循环数组的结构表示中的一种常用形式就是通过取余操作来实现这种伪循环 3.取余操作对负数取余其结果仍然是负数,对正数取余其结果是正数,对0取余其结果仍然是 阅读全文
posted @ 2021-10-16 11:14 banyanrong 阅读(60) 评论(0) 推荐(0) 编辑
摘要:从技术实现来说,不用函数和递归也可以写出所有程序,也就是说函数和递归均可以用其他内容替代 但是从实用的情况下来讲,递归能够帮我们大忙。 比如说,函数递归可以增加程序的可读性,可维护性 更好的调试技巧,不如先学习如何更好的写程序,如果方法得当,不仅能够更快的写出更短的程序,而且调试起来也更轻松,隐含的 阅读全文
posted @ 2021-10-14 23:55 banyanrong 阅读(43) 评论(0) 推荐(0) 编辑
摘要:终于到递归了,前面的函数指针数组的指针你掌握了吗?Let's go on! 递归的定义 递归: 参见“递归” 递归: 如果还是没明白递归是什么意思,参见“递归” 递归就是自己用到自己的意思 递归未必只是自己跟自己,扩大概念 A经理:这事不关我管,找B经理 B经理:这事不关我管,找A经理 两者之间会不 阅读全文
posted @ 2021-10-14 14:45 banyanrong 阅读(65) 评论(0) 推荐(0) 编辑
摘要:函数指针的类型一般这样定义 返回值类型 (*函数指针)(参数类型) 这边的参数类型有时候我们经常使用const void*因为这个void类型的指针的兼容性非常好,void类型的指针可以强制转化成其他类型的指针,非常方便 因为函数再编译的过程中函数名其实最后就是通过将其转化为函数的地址来实现的因此通 阅读全文
posted @ 2021-10-14 14:35 banyanrong 阅读(39) 评论(0) 推荐(0) 编辑
摘要:把函数作为函数的参数,有一个非常典型的应用--排序 C语言的stdlib.h中有一个叫qsort的库函数,实现了著名的快速排序算法,他的声明是这样的 void qsort(void* base, size_t num, size_t size, int (*comparator)(const voi 阅读全文
posted @ 2021-10-13 23:58 banyanrong 阅读(316) 评论(0) 推荐(0) 编辑
摘要:本节的函数将更加复杂有趣,如返回多个值,或者拥有交换两个变量的功能 错误的代码示范:(笔者认为这边的理解应该在学完指针后理解会更加了解为什么会产生这个错误) 点击查看代码 #include<stdio.h> void swap(int a, int b) { int t; t = a; a = b; 阅读全文
posted @ 2021-09-24 23:18 banyanrong 阅读(110) 评论(0) 推荐(0) 编辑
摘要:即使最终答案在所选择的数据类型范围之内 ,计算的中间结果仍然可能溢出 eg: 点击查看代码 long long fac(int n) { long long m = 1; for(int i = 1; i <= n; i++) m *= i; return m; } 这段代码在n = 21的时候就会 阅读全文
posted @ 2021-09-24 11:29 banyanrong 阅读(52) 评论(0) 推荐(0) 编辑
摘要:注意本随笔以及以后相关的随笔都是算法竞赛入门经典的笔记,因此会有部分内容直接从原文摘入,如有不合理的地方,请联系FlnButFly,我会马上删除 1.C语言中的数学函数可以定义成“返回类型 函数名(参数列表){函数体}”,其中函数体的最后一条语句应该是“return 表达式;” eg: int ad 阅读全文
posted @ 2021-09-23 23:46 banyanrong 阅读(385) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示