1. 判断一个机器是大序还是小序的
bool IsBig_Endian()
//如果字节序为big-endian,返回true;
//反之为 little-endian,返回false
{
unsignedshort test = 0x1122;
if(*( (unsignedchar* ) &test ) == 0x11)
returntrue;
else
returnfalse;
}//IsBig_Endian()
3. 有个MxN的迷宫,一个人站在迷宫的左上角,出口在右下角。这个人每走一步只能向下一步或者向右一步,不能向左或后退。问这个人从入口到出口一共有多少种不同的走法。
(M+N)! / M!N!
4. N个平面最多能把空间分成多少份?
n个点最多把直线分成C(n,0)+C(n,1)份;
n条直线最多把平面分成C(n,0)+C(n,1)+C(n,2)份;
n个平面最多把空间分成C(n,0)+C(n,1)+C(n,2)+C(n,3)=(n³+5n+6)/6份;
n个空间最多把“时空”分成C(n,0)+C(n,1)+C(n,2)+C(n,3)+C(n,4)份;
只有1条直线时平面分成2个区域;去掉第n条直线剩下的n-1条直线分平面f(n-1)个不连通区域,加上第n条直线时,其与这n-1条直线相交于n-1个点,将第n条直线分成n段,每段分原来的区域为两个较小的区域,从而f(n)应该等于原来的f(n-1)个加上后来分割后多出来的n个,即是: f(n)=f(n-1)+n 由上述递推关系和初值可很快解出:f(n)=l(n-1)+n=l(n-2)+(n-1)+n=...=f(1)+2+...+n =1+n*(n+1)/2
5、25匹马,5条赛道,每次最多5匹马赛跑,结束只能知道5匹马的相对排名,不能知道每匹马的具体速度,问需要几轮比赛才能找出跑得最快的三匹。
首先跑5次,每次5匹。接着,让之前每次跑第一的马(共5匹),跑一次,并根据跑的名次,令a到e表示这5匹马所在的组。这时,马的相对关系有:
a1 a2 a3 a4 a5
b1 b2 b3 b4 b5
c1 c2 c3 c4 c5
d1 d2 d3 d4 d5
e1 e2 e3 e4 e5
其中只有, a1 a2 a3 b1 b2 c1 成为前3名的侯选者(其它的马一定在3名以外了)。而a1已经是最快的了,无需再跑。所以,只需要将a2 a3 b1 b2 c1 跑一次选出前2名即可。
总共需要7次。