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