
数据结构和算法
SammyLan
当你的才华还撑不起你的野心时,那你就应该静下心来学习。
展开
-
判断n是否是N的整数次方(N是2的N次方)
昨天翻了下自己以前的博客,看到这样一道题:" 判断一个数是否是4的整数次方",就想能不能用模板的方式将4扩展到2,4,8,...2^n的所有情况呢?于是将题目改为:"判断n是否是N的整数次方,其中N必须是2的整数次方且大于1,如果传的N不符合规范,则编译错误"template bool isPowerOf(size_t n)以下是代码实现template struct Static原创 2014-09-24 10:48:10 · 1032 阅读 · 0 评论 -
螺旋输出N*N矩阵
#include #include using namespace std;void func(int n){ static const int dir[][2]={{0,1},{1,0},{0,-1},{-1,0}}; const int size=n+2; int **ver=new int *[size]; for (int i=0;i原创 2007-04-24 10:06:00 · 1510 阅读 · 0 评论 -
判断一个数是否是4的整数次方
<br />原理:<br /><br />2的整数次幂且奇数位置1的数为4分整数次幂,此算法可以扩展到求(2^n)的整数次幂,对于8的整数次幂,只需要将N-2改为N-3即可,对于16的整数次幂,需要将mask<30>改成mask<28>并将N-2改成N-4.也就是,对于(2^n)的整数次幂,我们只需要改两个地方<br />1.将mask<30>中的30改成32位整形中(2^n)最大的幂二进制表示中最高有效位的位置<br />2.将N-2改成N-n<br />template<size_t N> st原创 2010-09-04 15:22:00 · 1505 阅读 · 1 评论 -
本机字节序转网络字节序的一种实现
#include using namespace std;typedef unsigned char BYTE;typedef long long LONGLONG;inline long SwapLong(const BYTE* pByte){ return (pByte[0] (pByte[1] (pByte原创 2010-02-24 12:39:00 · 951 阅读 · 0 评论 -
求一个32位无符号整数右边"0"的个数
int calc(unsigned int n){ if(0==n) return 32; unsigned int ref=0xFFFF; unsigned int cnt=16; int sum =0; while(n>1) { if(n&ref) { n&=ref; } else { sum+=cnt;原创 2008-06-24 20:59:00 · 1064 阅读 · 0 评论 -
扩展的斐波那契数列:求兔子个数
问题描述:第1年有1对兔子,每对兔子从出生后第3个年起,就可每年生1对兔子,兔子的寿命是6年,问第n年有多少对兔子? Normal 0 7.8 磅 0 2 false false false原创 2010-01-07 12:16:00 · 955 阅读 · 0 评论 -
[动态规划]货币发行问题
/*问题描述:货币发行问题假定你可以发行面值为1,3,5,7,9....的货币现在每天你要交一块钱给房东,房东一开始没有钱(按天结算)当然房东有钱以后可以找你钱每天都不能有拖欠现在你要交31天房租,问最少要发行多少张货币?*//*问题分析:1. 我们只在交易无法继续进行下去的时候发行货币2. 每次发行货币我们都发行面值尽可能大的货币 假设第N天已经发行的货币无法继续交原创 2014-09-24 15:59:43 · 911 阅读 · 0 评论 -
[动态规划] 蛇行序列(snake sequence)
You are given a grid of numbers. A snake sequence is made up of adjacent numbers such that for each number, the number on the right or the number below it is +1 or -1 its value. For example, 1 3 2原创 2014-09-24 11:11:23 · 1374 阅读 · 0 评论