![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
Qu1et
这个作者很懒,什么都没留下…
展开
-
每周一算法(1):汉诺塔
首先汉诺塔是使用递归一个非常经典的例子, 历史故事说了也没用,我们想象原理。 前提,三根柱子ABC,将A上的盘子数按顺序挪到C,每次只能一个 1. 一个盘子,A->C 2. 两个盘子 A->B, A->C, B->C 3. 大于两个盘子,那我们先理解为上面一个盘子,下面n-1个盘子属于一个整体。 先移动第一个的A->C,那么我们在n-1(可以当成1个)需...原创 2018-11-22 18:06:02 · 187 阅读 · 0 评论 -
每周一算法(2):费式数列
即斐波那契数列,小学可能就知道它的规律了,即该数是前两个之和。 例如:1、1、2、3、5、8、13、21、34、55、89…… 按照它的规律: 即:Fn = Fn -1 + Fn-2 n>1 Fn = n n=0/1 如何做,应该刚接触for循环的新新手都能写出来,故不做具体描述,算法如下: #includ...原创 2018-11-25 14:49:53 · 316 阅读 · 0 评论 -
每周一算法(3):巴斯卡三角形
写了前面两个发现可能很弱智,这些简单的算法还要写一大堆 所以简单的算法我们只贴代码,和简单的描述,不做详细说明 看上图就知道什么意思了。 #include <stdio.h> #define N 12 //打印多少行 long combi(int n, int r) //对于数字的算法 { int i; long p = 1; for(i = 1;...原创 2018-11-25 15:00:11 · 796 阅读 · 0 评论 -
每周一算法(4):三色棋
终于来了排序的算法了,但是和普通的排序还有点差异 说明:假设一条绳上有红、白、蓝三种颜色的棋子,按照蓝白红排列,需要移动次数最少,只能在绳子上进行,并且一次只能移动两个。 其实要实现功能很多做法,但是要次数最少,额,那就需要移动有些技巧: 我们需要三个变量例如WFlag,BFlag,RFlag 如果当前位置到了白色,则当前位置W+1 如果到了蓝色,W和B交换位置后,W和B都加1 如果遇...原创 2018-11-30 16:57:20 · 617 阅读 · 0 评论