
数据结构与算法
Freely~
Enjoy coding
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
鸡兔同笼问题
问题:已知鸡、兔的头和脚总数,求分别有多少只鸡和兔? 对于该问题我们可以采用穷举法来计算。 分析: 一只鸡有一个头、两只脚 一只兔子有一个头、四只脚 设鸡有x只,兔有y只,就得到了一个两个方程: x + y = sum(头) 2*x + 4*y=sum(脚) 由二元一次方程特性可知,当我们知道头和脚的数量时,我们可以得到鸡和兔的数量。 采用代码实现如下: #include &...原创 2018-04-24 22:34:20 · 1215 阅读 · 0 评论 -
递推算法-兔子产仔问题
13世纪意大利数学家斐波那契的《算盘书》中记载了典型的兔子产仔问题,其大意如下:如果一对一个月大的兔子以后每一个月都可以生一对小兔子,而一对新生的兔子出生两个月才可以生出小兔子。也就是,1月份出生,3月份开始产仔。那么假定一年内没有产生兔子死亡事件,那么1年之后共有多少对兔子呢? 我们来分析一下兔子产仔问题。我们先逐月看每月兔子的对数。 第一个月:1对兔子; 第二个月:1对兔子; 第三个月...原创 2018-04-25 21:24:10 · 1997 阅读 · 0 评论 -
递归算法-阶乘计算
常见的递归算法当属阶乘了,如求5!,此处需要特别注意溢出问题。算法实现如下: #include <iostream> using namespace std; #define U64 unsigned long long #define U16 unsigned short U64 factorial(U64 n) { if(1 == n) return...原创 2018-04-25 21:50:36 · 1056 阅读 · 0 评论 -
分治算法--假币问题
将这n个硬币分成两等份,然后放到天平的两端,则假币在较轻的那一端;然后将较轻的那一端的硬币再分成2等份,然后再放到天平的两端进行比较,假币还是在较轻的那一段;直到最后只剩下两个硬币了,分别放到天平的两端,轻的哪一个就是假币。当然,最后也可能剩下3个硬币,我们可以将这3个硬币中任意拿出来一个,然后将剩下的两个放到天平的两端,如果天平是平的,则说明拿出来的那个硬币就是假币;如果天平不是平的,则轻的那一...原创 2018-04-25 22:37:08 · 5113 阅读 · 0 评论