- 博客(5)
- 资源 (17)
- 收藏
- 关注
原创 编程之美系列(5)
斐波那契数列 公式如下: 如果 n=0;F(n)=0 如果 n=1;F(n)=1 如果 n>1;F(n)=F(n-1) + F(n-2); 接斐波那契数列有递归方式和非递归方式 非递归方式如下: #include stdio.h> #include malloc.h> #include stdlib.h>#includ
2010-01-20 19:45:00 470
原创 编程之美系列(5)
题目:最大公约数问题 书上给出了三种解法,前两种都是大家常用的方法,第三种方法很奇特,效率也很高 第一种解法是根据公式:f(x,y) = f(y,x%y);如果y=0,则x为最大公约数 #include stdio.h> #include malloc.h> #include stdlib.h>#include string.h>#include
2010-01-20 19:17:00 709
原创 编程之美系列(3)
“水王”问题:在一个论坛里,有N个ID发帖,其中一个ID发的帖子数超过了论坛总贴数的一半,现在要从N各ID中找出这个“水王”ID。 如果每次删除两个不同的ID(不管是否包含“水王”的ID),那么,在剩下的ID列表中,“水王”ID出现的次数仍然超过总数的一半。可以不断重复 这个过程,把ID列表中的总数降低(转化为更小的问题),从而得到答案。 int Find(int *ID,i
2010-01-19 23:13:00 584
原创 编程之美系列(1)
今天开始看编程之美这本书,之前看过这本书的介绍觉得很不错。一直没有时间看,现在项目稍微轻松点了,得抓紧时间看书了。上一次大概浏览了下这本书,决定从第二章开始看,今天写的是第二章的第一个小部分:求二进制数中1的个数。 书上介绍了很多方法,非常不错! 第一种:最直接的解法,用%与/。如果取余结果为1,则计数加1,然后除以2.源代码如下 #include stdio.h>int
2010-01-11 21:13:00 652
原创 求重复数字的问题
题目要求如下: 数组a[N],存放了1至N-1个数,其中某个数重复一次。写一个函数,找出被重复的数字.时间复杂度必须为o(N)函数原型: int do_dup(int a[],int N) 本身是一个很简单的题目,但是要求时间复杂度为O(n);所以必须得想点其他方法。 题目要求数组中存放的是1至N-1个数,所以可以从求和的角度来算出多出来的这个数。 源
2010-01-10 15:16:00 835
c语言编写的shell
2009-03-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人