c++递归
cvb00052
这个作者很懒,什么都没留下…
展开
-
最小次数(递归)
对于一个整数,有如下操作规则:如果n为偶数,将其除以2;如果n为奇数,可以加1或减1;一直处理下去。那么,最终该数会变为1。例如:当n为7时,可以证明最少需要4次运算n = 7n-1 6n/2 3n-1 2n/2 1最终该数会变为1.现在给出一个整数,求它变为1的最少运算次数。第一次接触递归,从大局来思考递归。#include us原创 2015-12-09 20:31:12 · 637 阅读 · 0 评论 -
分割问题(对递归的理解)
原作:http://blog.csdn.net/wu_lai_314/article/details/8219236(1) n条直线最多分平面问题 题目大致如:n条直线,最多可以把平面分为多少个区域。 析:可能你以前就见过这题目,这充其量是一道初中的思考题。但一个类型的题目还是从简单的入手,才容易发现规律。当有n-1条直线时,平面转载 2015-12-19 16:04:05 · 381 阅读 · 0 评论 -
汉诺塔游戏(递归)
半年多前遇到的问题,经过半年已经忘记递归怎么用了。今天重新遇到发现毫无头绪,看了题解才发现原来是这样。果然还是一点都不熟悉递归。题目:汉诺塔问题(又称为河内塔问题),是一个大家熟知的问题。在A,B,C三根柱子上,有n个不同大小的圆盘(假设半径分别为1-n吧),一开始他们都叠在我A上(如图所示),你的目标是在最少的合法移动步数内将所有盘子从A塔移动到C塔。游戏中的每一步规原创 2016-07-30 13:41:32 · 352 阅读 · 0 评论 -
codevs 1501二叉树最大宽度和高度
地址:http://codevs.cn/problem/1501/第一次接触树。幸好这题的节点都是一定的,不是随便定下来的。(其实上网查了题解才知道理解错题意了。。)所以用深搜来做不用想这么多。不然我暂时也做不了。#include using namespace std;int width[10], tree[20][2];int layernum,原创 2016-07-30 20:12:45 · 385 阅读 · 0 评论 -
codevs 3143 二叉树的序遍历
地址:http://codevs.cn/problem/3143/题目规定了树的每个位置的编号,所以可以直接用这个编号来遍历。#include using namespace std;int tree[200][2];void preorder(int i) { if(tree[i][0] != 0) { cout << tree[i][0] << "原创 2016-07-30 20:17:21 · 374 阅读 · 0 评论