- 博客(14)
- 收藏
- 关注
原创 筛法求质数------------2012年12月30日
问题描述:使用筛法求质数。有一个很神奇的筛子,可以给它一个数i,这个筛子有办法把i的所有倍数去掉。请用这个方法求出2到N之间的所有质数。要求,程序不能使用乘法和除法,只能用加或减,以求加快速度。 该问题的思路来自《C语言名题精选百则技巧篇》,很惭愧,我对这样的涉及一些数学知识的题很少有解决的办法,我需要在这一方面加强。 我把书中的思路归纳如下,并加上了我
2012-12-30 22:03:57 1146
原创 求质数-------2012年12月29日
昨天太忙,没有时间做一个题,先记着,明天来补。 问题描述很简单,就是求N之内的所有质数并且打印出来。 思路:求质数有很多方法,我这里用一种比较高效的方法。我一步一步地说明方法。 1.比如判断一个数num是否为质数,那么就用num去对"i(i从2开始)直到根号num"取模,如果都不能整除就说明num是质数。 2.但是这样会有
2012-12-29 21:34:06 1034
原创 等值首尾和-----------2012年12月27日
问题描述:假设有一个数组x[],它有n个元素,每一个都大于零;称x[0]+x[1]+.....+x[i]为前置和,而x[j]+x[j+1]+....+x[n-1]为后置和。编写程序,求出x[]中有多少组相同的前置和与后置和。 我的思路:因为这个数组都是正数,那么,对于i越大,前置和也就越大;后置和是j越小,那么后置和越大。接下来就很简单了,当以x[i]为终点的前置和大于以x
2012-12-27 16:39:22 1041
原创 两数组最短距离-------2012年12月26日
刚才那题太简单,不过瘾,再做一道题。 问题描述:已知两个元素从小到大排列的数组x[]与y[],请编写一个程序算出两个数组元素彼此之间差的绝对值中最小的一个数,此值称作数组的距离。 我的思路:关键点依然是"两个数组都从小到大排序"。那么,当x[i]==y[j]时,数组间距离为0,这肯定是最小的;当x[i]-y[j]>0时,如果i再增大,那么x[i]也会增大,那
2012-12-26 20:12:32 1541
原创 等值数目-------2012年12月26日
问题描述:已知两个整数数组f[]与g[],它们的元素都已经从小到大排列好,而且两个数组中的元素都各不相同。例如,f[]中有1,3,4,7,9,而g[]中有3,5,7,8,10。试编写程序算出这两个数组之间有多少组相同的元素。就这个例子而言,f[1]与g[0]是一组,f[3]与g[2]是一组。 我的思路:关键点还是"元素都已经从小到大排列好"。那么,两个数组,一起遍历就可以解决
2012-12-26 19:29:59 1296
原创 支配值数目-------2012年12月25日
刚才做的那道题比较简单,再做一道。 问题描述:已知f[]与g[]两个整数数组,元素都已经从小到大排列,请写一个程序,算出f[]比g[]中元素大的对数。换句话说,f[0]比g[]中多少个元素大,f[1]比g[]中多少个元素大,等等,这些值的总和就是要求的答案。举个例子,如果f[]中有1,3,5,7,9,而g[]中有2,3,4,7,8,那么答案就是12。
2012-12-25 15:25:37 1116
原创 最长平台问题(递归算法)------2012年12月25日
问题描述:已知一个已经从小到大排序的数组,这个数组中的一个平台就是连续的一串值相同的元素,并且这一串元素不能再延伸。例如,在1,2,2,3,3,3,4,5,5,6中1,2.2,3.3.3,4,5.5,6都是平台。编写一个程序,接收一个数组,把这个数组中最长的平台找出来。在上面的例子中3.3.3就是该数组中最长的平台。 代码如下: 1 #include 2
2012-12-25 14:33:09 1611
原创 最长平台问题------2012年12月24日
问题描述:已知一个已经从小到大排序的数组,这个数组中的一个平台就是连续的一串值相同的元素,并且这一串元素不能再延伸。例如,在1,2,2,3,3,3,4,5,5,6中1,2.2,3.3.3,4,5.5,6都是平台。编写一个程序,接收一个数组,把这个数组中最长的平台找出来。在上面的例子中3.3.3就是该数组中最长的平台。 我的思路:用distance变量表示平台的长度,从数组t
2012-12-24 19:49:27 1499
原创 动态规划之最长公共子序列------2012年12月22日,23日
今天是2012年12月22日。今天的算法练习题是最长公共子序列的长度求解。 此题初看时,感觉问题非常复杂,要求解两个序列的最长的(可以不连续)的公共子序列。但是,"将复杂的问题分解成简单的问题"是基本的程序设计思想。分治法是将一个大问题分解成多个相似的小问题,而本题采用的动态规划算法,则是将复杂的问题分解成一系列的相似的子问题。另外,将所求解的子问题的解通过数组等容器保存起
2012-12-22 22:41:48 1136
原创 UNIX系统编程小结(三)----进程相关
进程即一个程序的动态执行。引用apue上的一句话:"A thorough understanding of the UNIX System's process control is essential for advanced programming".一.总述 1.进程的开始 在C语言中,进程是由一个main函数开始。
2012-12-19 11:06:08 1996 4
原创 后知后觉"者的学习方法
注:这里的"后知后觉"者,指的是像我一样的在大学之前没有接触过程序设计的人或者是在想要入职程序员而没有任何基础的人。一.学任何知识的先决条件 先不谈具体的学习方法,就学任何方面知识的先决条件来发表一些我自己的看法。 共三点,这3点的重要性不分先后。 第一点就是主动性。当然主动性需要建立在兴趣的基础上。主动学习与被动学习,两者的效果
2012-12-10 09:02:24 2252 2
原创 unix系统编程小结(二)------文件和目录
一.对linux的安全机制的一点感悟 各种权限,read,write,execute,set-user-ID,set-group-ID,sticky bit,对目录的权限,对文件的权限,用于保证系统安全的各种组合技,各种经典。比如,如果我们想unlink一个文件,就必须拥有该文件所在目录的write与execute的权限。二.两个小例子 1.
2012-12-09 09:08:36 1777
原创 unix系统编程小结(一)------文件I/O
基本看完了《unix/linux编程实践教程》,实现了几个小项目,觉得很不过瘾,书中对很多system call的细节和原理都没讲。在尝试看linux内核分析的书时发现很多困难,所以拿起apue,继续打基础。读着读着,对apue上瘾了。这是题外话,就说这么多。一.我对文件I/O的理解 文件I/O最基本的两个函数就是read和write,书中也叫做unbuffered I
2012-12-04 20:54:22 1865
原创 linux下dup2的实现
这是apue的一个习题,要求不用fcntl来实现dup2.这是我的思路:循环调用dup复制file descriptor,直到与指定的相同。如果您有更高效的方法,请告诉小弟我,非常感谢! 代码如下:#include #include #include #include #define MAX 1000//function:neil_dup2int nei
2012-12-02 11:22:46 2113
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人