上一页 1 2 3 4 5 6 7 ··· 10 下一页
摘要: 题目来自:《C语言精选名题百则技巧篇》 问题描述:已知一个整数数组x[],其中的元素彼此都不相同,而且也已经从小到大排列好。请用比较大小,相等的方式编写一个程序,找出给定的数组中是否有一个元素满足x[i]==i(注意:在代码中是从0开始索引的,也就是x[0]是第一个数,所以对应于代码也就是x[i]==i+1)的关系。举例而言,如果x[]={-2,-1,3,7,8},x[3]=3,因此3就是答案。 思路:利用x[]中的元素彼此都不相同而且从小到大排列,可以用二分查找法。代码很简单。 1 #include <stdio.h> 2 #define MAX 1000 3 4 //proto 阅读全文
posted @ 2013-02-24 13:26 NeilHappy 阅读(387) 评论(4) 推荐(0) 编辑
摘要: 原文地址:http://www.cnblogs.com/polymorphism/archive/2011/12/12/2285334.html先介绍几条背景知识:1. MOV 的右值必须是常量,而不能是表达式,比如可以写MOV EAX, EBP,但不能写MOV EAX, EBP + 8这是因为EBP + 8本身也需要一条指令来计算,所以不能跟MOV写在一条指令里。2. 注意到在汇编指令的内存地址符[]内可以做算术运算,那是因为内存地址的计算在CPU里是由专门的处理单元AGU来处理的,并不占用算术运算单元ALU的时钟周期。但如果用MOV 接内存地址符号[]的话,会把[]里的地址指向的内存的内容 阅读全文
posted @ 2013-02-23 19:20 NeilHappy 阅读(341) 评论(0) 推荐(0) 编辑
摘要: 刚才在看busybox源码的时候看见clear的实现,主要语句就一条。printf("\033[H\033[J"); 这一条语句就可以在终端下清屏,我感觉这非常神奇,但不懂原因。先记录在这里。 阅读全文
posted @ 2013-02-18 20:13 NeilHappy 阅读(1038) 评论(4) 推荐(1) 编辑
摘要: zo 展开(可以用空格代替) zc 收起(比较常用) zn 全部展开 zN 全部折叠 阅读全文
posted @ 2013-02-17 20:52 NeilHappy 阅读(488) 评论(0) 推荐(0) 编辑
摘要: 从MacVim转到终端下的vim时,遇到一个问题。当终端vim打开文件时,会出现错位的情况,如图: 这是因为我在.vimrc中有以下几行,对终端vim造成了影响。"设置vim起始时的窗口大小 "这个设置会导致在终端下的vim调整窗口的大小的时候会出现错位。set lines=25 columns=75 阅读全文
posted @ 2013-02-17 20:35 NeilHappy 阅读(1159) 评论(0) 推荐(0) 编辑
摘要: 问题描述:用G(n)表示在有n位的二进制数中没有相邻的两个1的二进制数个数。比如,当n=3时,000,001,010,011,100,101,110,111这8个数中只有000,001,010,100,101这5个是没有相邻为1的,故G(3)=5。请写一个程序,输出G(n)的值。 错误的思路(考虑的不周全):采用"分治"的方法,比如n=3,每次都将处理原问题规模的二分之一,直到n=1时,就很容易可以知道有两种情况。前面是"分",然后是"合"。比如把规模为n的问题分成了p1和p2部分,而且p1和p2问题都已经解决,个数已经知道。那么,把 阅读全文
posted @ 2013-02-17 12:50 NeilHappy 阅读(544) 评论(8) 推荐(0) 编辑
摘要: 备忘。原文地址:http://blog.sina.com.cn/s/blog_5f5a3dff01013aa8.html1. 终端下载iterm2,iterm2默认支持256色,可以在新tab中使用前一个tab的路径,支持鼠标选中复制等。2. 配色 (by Neil:我喜欢白色的背景,所以用的是默认的配色。)3. shellMac和linux一般默认shell都是bash,然而这个世界上最强大的shell非zsh莫属。强大的命令补全,自动纠错等。我之前的一篇文章也简单介绍过终极shell--zsh。ebrew,直接brew install zsh就行了。然后你需要找一个好的配置,或者你自己配. 阅读全文
posted @ 2013-02-15 18:02 NeilHappy 阅读(9314) 评论(0) 推荐(0) 编辑
摘要: cat显示一个文件的内容。需要注意的是,cat并不能处理目录。 1 extern int cat_main(int argc, char **argv) 2 { 3 int status = EXIT_SUCCESS; 4 5 if (argc == 1) { 6 print_file(stdin); 7 return status; 8 } 9 10 while (--argc > 0) {11 if(!(strcmp(*++argv, "-"))) {12 print_file(... 阅读全文
posted @ 2013-02-15 12:25 NeilHappy 阅读(2250) 评论(3) 推荐(0) 编辑
摘要: pwd命令是列出当前的路径。 1 extern int pwd_main(int argc, char **argv) 2 { 3 static char *buf; 4 5 buf = xgetcwd(buf); 6 7 if (buf != NULL) { 8 puts(buf); 9 return EXIT_SUCCESS;10 }11 return EXIT_FAILURE;12 } 通过xgetcwd函数将路径保存到buf中。char *xgetcwd (char *cwd){ ch... 阅读全文
posted @ 2013-02-15 11:07 NeilHappy 阅读(1322) 评论(0) 推荐(0) 编辑
摘要: 递归算法见:整数的所有不同分割数目--递归算法 思路:非递归与递归的思维顺序是互逆的,所以很容易写出以下代码。 1 #include <stdio.h> 2 #define MAX 1000 3 4 int p[MAX][MAX]={0}; 5 6 int main() 7 { 8 int n=2; 9 int index_n,index_m;10 //initialize the p[n][1]=1;11 for(index_n=1;index_n<=n;index_n++)12 p[index_n][1]=1;13 14 ... 阅读全文
posted @ 2013-02-15 10:50 NeilHappy 阅读(418) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 10 下一页