【面试题目】
残阳摧雪
行有不得,反求诸己!
展开
-
习题 3.21
题目x+y+z+m=12x+y+z+m=12,其中x,y,z,mx,y,z,m都是正整数,那么x,y,z,mx,y,z,m有 165 种不同的取值组合。思路可以这样看,首先把12看做12个1,然后按题目要求则是把他们分成四堆,每堆至少一个1。我们知道,12个1中间共有11个空位,只需从中找出3个位置插入隔板即可分为4堆(隔板法),共有: C311=165种C_{11}^3=165种原创 2017-02-08 21:30:52 · 333 阅读 · 0 评论 -
例题 3.13
题:一个合法的表达式由()包围,()可以嵌套和连接,如(())()也是合法表达式;现在有 6 对(),它们可以组成的合法表达式的个数为132 解释: 这是一个卡特兰数列,我们可以把左括号看做1,右括号看做0,这些括号的组合就是01的排列,这里需要满足从第一个数开始的任意连续子序列中,0的个数不多于1的个数,也就是右括号的个数不多于左括号的个数。假设我们不考虑这个限制条件,那么全部的01排列共有Cn原创 2017-02-08 09:57:12 · 304 阅读 · 0 评论 -
原码、反码、补码
为什么需要补码计算机系统中,数值一律用补码来表示和存储。原因在于,有如下好处: 使用补码,可以将符号位和数值域统一处理; 加法和减法也可以统一处理。 补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。 原码设机器字长为n,则一个数的原码就是用一个n位的二进制数,其中最高位为符号位:正数为0,负数为1。剩下的n-1位表示该数的绝对值。以n=8n=8为例: X=+101011,[X]原=原创 2017-03-14 11:49:17 · 480 阅读 · 0 评论 -
待深入理解
401. Binary Watch原创 2017-08-19 20:56:47 · 192 阅读 · 0 评论