if和switch效率的再研究
昨天发现了一本叫做CSAPP的书,终于找到了关于switch问题的解答。
这是一段C代码:
/* $begin switch-c */
int switch_eg(int x)
{
int result = x;
switch (x) {
case 100:
result *= 13;
break;
case 102:
result += 10;
/* Fall through */
cas...
大家都很熟悉HTTP协议的应用,因为每天都在网络上浏览着不少东西,也都知道是HTTP协议是相当简单的。每次用thunder之类的下载软件下载网页,当用到那个“用thunder下载全部链接”时总觉得很神奇。
后来想想,其实要实现这些下载功能也并不难,只要按照HTTP协议发送request,然后对接收到的数据进行分析,如果页面上还有href之类的链接指向标志就可以进行深一层的下载了。HTTP协议目前用的最多的是1.1版本,要全面透彻地搞懂它就参考RFC2616文档吧。我是怕rfc文档了的,要看自己去看吧^_^
源代码如下:
/******* http客户端程序 httpclient.c...
直觉:for(i=0;i<=500;i++)
for(j=0;j<=200;j++)
if((i*2+j*5)<=1000)count++;优化:一般化一下, 设求的和为n
枚举5的个数就行了
设i个5, 则剩下的n - 5 * i 由2和1组成的种数为floor((n - 5 * i) / 2)
for (i = 0; i <= 200; i++)
count+=(1000-5*i)/2+1;
讲讲,3=1+1+1=1+2,2种
4=1+1+1+1=1+1+2=2+2,3种
也就是一数字n由1和2组成共有n/2+1种
zj@zj:~/...
中兴笔试题
公共部分(50分) 1:作业调度程序从处于(B)状态的队列中选择适当的作业的作业投入运行。(3分) A 运行 B 提交 C 完成 D后备 2:SQL语言中,删除一个表的命令是(B)(3分) A CLEAR TABLE B DROP TABLE C DELETE TABLE D REMOVE TABLE 3:ATM采用的线路复用方式为(C)(3分) A 频分多路复用 B 同步时分多路复用 C 异步时分多路复用 D 独占信道 4:数据库中只存放视图的(C)(3分) A操作 B 对应的数据 C 定义 D 限制 ...
一个Shell脚本的内部执行两种类型的命令。
通常(normal)的命令,这样的命令我们也可以在命令行的方式下来运行,称为处部命令,
内建(built-in)命令,称之为内部命令。内建命令是在Shell的内部来实现的而不能为外部程序所调用。
然而大多数的内部命令也会作为相对独立的单一程序来提供,而这也是POSIX 标准所要求的一部分。通常来说内部命令与外部命令并没有太大的区别,除非是这个内部运行得更为高效。
DLP是“Digital Light
Procession”的缩写,即为数字光处理,也就是说这种技术要先把影像信号经过数字处理,然后再把光投影出来。它是基于TI(美国德州仪器)公司开
发的数字微镜元件——DMD(Digital Micromirror
Device)来完成可视数字信息显示的技术。说得具体点,就是DLP投影技术应用了数字微镜晶片(DMD)来作为主要关键处理元件以实现数字光学处理过
程。其原理是将通过UHP灯泡发射出的冷光源通过冷凝透镜,通过Rod将光均匀化,经过处理后的光通过一个色轮(Color
Wheel),将光分成RGB三色(或者RGBW等更多色),再将色彩由...
双端队列(JAVA)双端队列就是一个两端都是结尾的队列。队列的每一瑞都可以插入数据项和移除数据项。这些方法可以叫作insertLeft()和insertRight(),以及removeLeft()和removeRight()。如果严格禁止调用insertLeft()和removeLeft()方法(或禁用右段的操作),双端队列功能就和栈一样。禁止调用insertLeft()和removeRight()(或相反的另一对方法),它的功能就和队列一样了。双端队列与栈或队列相比,是一种多用途的数据结构,在容器类库中有时会用双端队列来提供栈和队列两种功能。
【Catalan数——卡特兰数】
一.Catalan数的定义令h(1)=1,Catalan数满足递归式:h(n) = h(1)*h(n-1) + h(2)*h(n-2) + ... + h(n-1)h(1),n>=2该递推关系的解为:h(n) = C(2n-2,n-1)/n,n=1,2,3,...(其中C(2n-2,n-1)表示2n-2个中取n-1个的组合数)
二.Catalan数公式推导截图:
三.Catalan数的典型应用:
1.括号化问题。矩阵链乘: P=A1×A2×A3×……×An,依据乘法结合律,不改变其顺序,只用括号表示成对的乘积,试问有几种括号化的方案? ...
append 函数能将某字符串(或数据串)加到某字符串后面 assign 函数能将字符串(或数据串)的内容设定给某字符串 at 函数能回传字符串中位于某个位置的字符 begin 函数将回传该字符串的起始定位器 c_str 函数能将字符串对象中的内容,以c语言字符串的方式输出 capacity 函数能回传目前所能控制的对象容器大小 compare 函数将会回传 可控制的字符吕容量 copy 函数能将数据串的内容复制到加一个数据串中 data 函数能将数据串的第一个起始指针传出 e...
今天去面试,给了个题:
要求把字符串 “sdjaabcasdkk;3asd,abcadapabcadp” 中的 子串“abc”使用 “zhong” 替代得到一个新的字符串
看着这个好像挺简单的,竟然花了我好长时间!!真是郁闷#include <stdio.h>#include <string.h>char *source = "sadaabcadadjalabcdd";int main(){ char dec[100] = {0}; int i; char *pstr = source; char *pstr1 = dec; printf("%s\n",...
char fsm[8][128];void initfsm(){ const int line_len=sizeof(char)*128; memset(fsm[0],0,line_len); memset(fsm[1],0,line_len); memset(fsm[2],2,line_len); memset(fsm[3],3,line_len); memset(fsm[4],3,line_len); memset(fsm[5],5,line_len); memset(fsm[6],5,line_len); memset(fsm[...
wndcls.lpszClassName="Weixin2003"; wndcls.lpszMenuName=NULL; wndcls.style=CS_HREDRAW | CS_VREDRAW; RegisterClass(&wndcls); HWND hwnd; hwnd=CreateWindow("Weixin2003","北京维新科学技术培训中心",WS_OVERLAPPEDWINDOW, 0,0,600,400,NULL,NULL,hInstance,NULL);即这里的 窗口名 Weixin2003 所依附的窗口类必...
C++ 类class中定义的变量和C结构体struct中的变量一样
也不能赋初值,而把其赋成 0 是纯虚函数的特性
也就是不存在纯虚变量,因此不可
class z{
int a = 0; 或者 int a = 1;
}
而只可
class z{
int a;
}
它们是.text、.bss、.rdata、.data、.rsrc、.edata、.idata、.pdata和.debug可执行代码段,.text .text段也包含了早先提到过的入口点。IAT亦存在于.text段之中的模块入口点之前。(IAT在.text段之中的存在非常有意义,因为这个表事实上是一系列的跳转指令,并且它们的跳转目标位置是已固定的地址。)当Windows NT的可执行映像装载入进程的地址空间时,IAT就和每一个导入函数的物理地址一同确定了。数据段,.bss、.rdata、.data .bss段表示应用程序的未初始化数据,包括所有函数或源模块中声明为stat...
当你听别人说起Linux、FreeBSD甚至OS2等等新奇的操作系统时,是不是也想尝试看看?但是当听到需要重新切割硬盘,原有数据还有可能丢失时,是否又有些犹豫?当初我也是在Linux的门外彷徨很久,直到我找到了VMware。因为它既保证了Linux能正确安装且正常运行,又不破坏原来的操作系统,为我们除去了费心研究如何把硬盘分区分得合理和高效的苦恼。下面,我给大家介绍一下怎样用这款软件来安装Linux。
一、VMware的安装及配置
简单地说,VMware就是一款虚拟机软件,它可以在你现有的操作系统上虚拟出一个新的子机。这个子机一方面建立在你正在运行的操作系统之上,同...
SetWindowPlacement()函数讲解: 函数功能:该函数设置指定窗口的显示状态和恢复,最大化,最小化位置。
函及原型;BOOL SetWindowPlacement(HWND hWnd,CONST WINDOWPLACEMENT★lpwndpl);
参数:
hWnd:窗口句柄。
lpwndpl:指向一个WINDOWPLACEMWNT结构的指针,该结构给出了新的显示状态和窗口位置。
在调用函数SetWindowPlacement之前,将WINDOWPLACEMWNT结构的长度单元置为sizeof(WINDOWPLACEMENT)。如果lpwn...
;文件:attach.asm.;宏定义._call MACRO procedure, parameters:VARARG LOCAL param, reversed reversed TEXTEQU <>% for param, <parameters> reversed CATSTR <param>, <!,>, reversed endm% for param, <reversed> push param endm call procedureENDM这里的 reversed TEXTEQU...
const int ii = 3; int *pi = (int *)&ii; *pi = 4;赋给指针的是const的副本
也就是没有 改变 const的值,只是改变了副本的值
导入库 hello.lib和其对应的动态库具有一致的函数名 hello_hello_
SetItemText()当然就是设置显示的内容了,还有SetSubItemText(); SetItemData()设置项数据,不显示,如果是指针的话,可以是任何数据,所以随便你怎么用。(Data 可以用来保存额外的一些数据)