![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 69
Zelda256
while(alive)
{
eat();
sleep();
code();
}
展开
-
POJ 1753 翻棋子 (dfs+递归)。
终于来填坑了。依旧是递归的题目,最近做的都是关于递归的问题。下一个是汉诺塔问题。 这道题也是看了很多别人的博客才弄出来的,但是分析还是要试着自己写一下。 题意是这样的,有一个4*4的棋盘,你可以自定义输入黑白两色棋子,直到填满着整个棋盘。然后就开始翻棋,翻棋的时候,翻转当前的某个棋子的同时,它附近的上下左右4个棋子也要翻转,当然,如果翻的是边上的棋子,那就翻它附近的棋子就行了。这道题是问最少翻多原创 2016-05-20 10:20:19 · 2153 阅读 · 3 评论 -
递归:从数组中取n个数有多少种组合。
还是在学习递归。 看别人的博客自己学习了之后,来写一下自己的理解吧。 首先这道题目是说,有一个数组,例如arr={1,2,3,4,5,6},给定一个n<=arr_len,例如给定4,问:从数组中取4个数一共有多少种组合方式?这个在数学上是排列组合问题。用脑子想的话,可以很快就有思路。 例如: 先定下取1,2,3,然后在4,5,6中取一个。假如我取了4。 下一步就是先定下取1,2,3然后在5原创 2016-05-12 09:10:52 · 7970 阅读 · 2 评论 -
递归:斐波那契数列(兔子总数)。
反复学习反复学习。 因为自己对递归还是不太熟练,于是做POJ1753的时候就很吃力,就是翻棋子直到棋盘上所有棋子的颜色一样为止,求最少翻多少次,方法是枚举递归。然后就打算先做另一道递归的题(从数组中取出n个元素的组合),但是同样在递归的问题上不太理解。好吧,于是复习CPP,在第229页的时候,看到了斐波那契数列,回想起之前做过的一道题目,发现可以用递归的方法来做。于是决定优化一下之前的代码。以下这原创 2016-05-11 11:05:31 · 8911 阅读 · 1 评论 -
汉诺塔问题 hanoi tower (递归)。
又来填坑了。 还是递归问题,这次是汉诺塔。 题意是这样的:有三根相邻的柱子,标号为A,B,C,A柱子上从下到上按金字塔状叠放着n个不同大小的圆盘,要把所有盘子一个一个移动到柱子C上,并且每次移动同一根柱子上都不能出现大盘子在小盘子上方,请问至少需要多少次移动,并输出移动的步骤。 由用户自定义输入金盘的个数n。 可以测试数据:当n=3时,自己模拟一下移动的步骤; 例如: 当A柱子上有3个从原创 2016-05-20 21:41:09 · 2787 阅读 · 0 评论