摘要: 题目:实现函数double Power(double base, int exponent), 求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。比较简单的代码:double Power(double base, double exponent){ double result=1.0; for(int i=1; i -0.0000001) && (num1 -... 阅读全文
posted @ 2015-07-21 17:58 Lucas_1993 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 题目:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。基本思路:先判断整数二进制表示中最右边是不是1,接着把输入的整数右移一位,在判断最右是不是1,直到整个整数变为0为止。int NumberOf1(int n){ int count=0; while(n) { if(n&1) count++; n=n>>1; } return count;}为了避免死循环,可以不进行右移i.... 阅读全文
posted @ 2015-07-21 17:40 Lucas_1993 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 题目:一只青蛙一次可以跳上一级台阶,也可以跳上2级。求该青蛙跳上一个n级台阶总共有多少种跳法。这个在大一的时候,听ACM的时候,有一个学长讲过,但是那时候不会编程,所以就没听懂。依稀记得是递归。扩展2来自为知笔记(Wiz) 阅读全文
posted @ 2015-07-21 14:56 Lucas_1993 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 题目:写一个函数,输入n求斐波那契数列的第n项。暴力简单解法:long long Fibonacci(unsigned int n){ if(nstruct Matrix2By2{ Matrix2By2 ( long long m00 = 0, long long m01 = 0, long long m10 = 0, ... 阅读全文
posted @ 2015-07-21 14:51 Lucas_1993 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}位{1,2,3,4,5}的一个旋转,该数组的最小值为1.分析:使用两个指针指向数组的第一个元素和最后一个元素,使用二分查找的方式进行查找。找到数组中间的元素,如果该元素位于前面的递增子数组,那么它应该大于或者等于第一个指针指向的元素。此时最... 阅读全文
posted @ 2015-07-21 14:35 Lucas_1993 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 题目:用两个栈实现一个队列。请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入节点和在队列头部删除结点的功能。队列的声明如下:template class CQueue{public: CQueue(void); ~CQueue(void); // 在队列末尾添加一个结点 void appendTail(const T& node... 阅读全文
posted @ 2015-07-21 10:16 Lucas_1993 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列为{1,2,4,7,3,5,6,8}和中序遍历的序列{4,7,2,1,5,3,8,6},则重建出下图所示的二叉树并输出它的头结点。分析:前序遍历的第一个元素就是根节点的值BinaryTreeNode* Construct(int* preorder, int* ... 阅读全文
posted @ 2015-07-21 10:02 Lucas_1993 阅读(306) 评论(0) 推荐(0) 编辑