自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 c/c++基本文件读写

在编程的过程中,文件的操作是一个经常用到的问题,在C++Builder中,可以使用多种方法对文件操作,下面我就按以下几个部分对此作详细介绍,就是:  1、基于C的文件操作;  2、基于C++的文件操作;  1. 基于C的文件操作  在ANSI C中,对文件的操作分为两种方式,即流式文件操作和I/O文件操作,下面就分别介绍之。  1)流式文件操作  这种方式的文件操作有一个重要的结构FILE,FIL

2008-05-27 20:47:00 1383

原创 一道经典的面试题:如何从N个数中选出最大(小)的n个数?

一道经典的面试题:如何从N个数中选出最大(小)的n个数?北京交大LuoBin这个问题我前前后后考虑了有快一年了,也和不少人讨论过。据我得到的消息,Google和微软都面过这道题。这道题可能很多人都听说过,或者知道答案(所谓的“堆”),不过我想把我的答案写出来。我的分析也许存有漏洞,以交流为目的。但这是一个满复杂的问题,蛮有趣的。看完本文,也许会启发你一些没有想过的解决方案(我一直认为堆也许不是最高

2008-05-23 23:12:00 2970 3

原创 变态比赛规则

变态比赛规则为了促进各部门员工的交流,百度举办了一场全公司范围内的“拳皇”(百度内部最流行的格斗游戏)友谊赛,负责组织这场比赛的是百度的超级“拳皇”迷W.Z。W.Z不想用传统的淘汰赛或者循环赛的方式,而是自己制定了一个比赛规则。由于一些员工(比如同部门或者相邻部门员工)平时接触的机会比较多,为了促进不同部门之间的交流,W.Z希望员工自由分组。不同组之间的每两个人都会进行一场友谊赛而同一组内的人之间

2008-05-23 22:52:00 1304

原创 求丑陋数

做过一道求丑陋数的面试题,下面是一篇关于丑陋数的文章,写得不错:http://www.programfan.com/blog/article.asp?id=25030本文对文中的三种方法进行整理,并描述我当时的解法。以下两种方法逐个遍历整数,筛选出丑陋数,效率太低:1、逐个遍历,直接测试是否为丑陋数,判断依据是丑陋数去除2、3、5因子后结果为1 static int isUglyNumber(un

2008-05-23 22:43:00 2544

原创 趣味题系列(7):蚂蚁

题目:有一根1米长的木棒漂流在海上,突然从天空中降下100只蚂蚁,幸运的是它们都降在了在这根木棒上,(它们降落在木棒上的位置是随机的)。然而不幸的事发生了,­所有蚂蚁从降落的时刻起就随机朝着木棒的一个方向以1cm/s的速度行走,而当发生两只蚂蚁相碰的时候,它们就各自立即进行反方向行走。一旦有蚂蚁走到了木棒的­如何一段,这只蚂蚁就会落入大海。现在,问最少经历多少时间就可以保证所有的蚂蚁都在海里游泳了

2008-05-23 22:26:00 1407 1

原创 趣味题系列(6):帽子戏法

题目: 现在有10个人被一个魔鬼逮住了。魔鬼对于直接把人杀掉的方法不感兴趣了。于是,他就想了一个杀人的新花样。是这样的,一天晚上,魔鬼向这十个人宣布了游戏规则­,即明早他要把他们10个人排成一排,然后从一堆既有无限多的白帽子混会着无限多的黑帽子的帽子堆里为每个人随机抽取一顶帽子,给他们10个人都戴上帽子。因为­10个人是排成一排的,所以排在第10个的人可以看到前面9个人帽子的颜色,排在第9个人可以

2008-05-23 22:17:00 2718 1

原创 趣味题系列(5):

题目:给你一个长度为N的链表。N很大,但你不知道N有多大。你的任务是从这N个元素中随机取出k个元素。你只能遍历这个链表一次。你的算法必须保证取出的元素恰好有­k个,且它们是完全随机的(出现概率均等)。 解答:题其实是编程珠玑习题12.10的推广,原题既是k=1的情况,关键就是想到可以替换以前已经选择的元素。 按照这个思路: 1. 对于前k个,全部选择,即选择集S里为前k个元素 2. 第k+i(i>

2008-05-22 17:45:00 1299

原创 趣味题系列(4):

题目:6个数组成一个串: 1 0 1 0 0 0 。它的首尾是相连的。即我们认为第一个数字与最后一个数字是相邻的。现在,你被允许的操作为每次为相邻两位数字同时加1。问:能否通过若干次这样的操作使得这6­个数字最后都相等?如果存在,那么请问需要的最少的操作次数为多少? 解答:两个1只间隔了一个0,所以不管怎么移位,它们一定是同时出现在奇位或者偶位上,假设是奇位好了,那么奇位和为2,偶位和为0,根据题

2008-05-22 00:14:00 1255 1

原创 趣味题系列(3):A升和B升的杯能否倒出C升的水

题目:现在你在一条大河边,有一个4升和一个9升的杯子,以下容量的水那些是可以成功倒出来的: 1,2,3,4,5,6,7,8,9? 如果是一个a升 的杯子,一个b升的杯子,a,b都是整数。那么你能成功倒出的水的容量应该满足什么样的条件? 解答:只要A和B的最大公约数能整除C,那么就可以倒出来.lol,可以推广到n个杯子的情形

2008-05-22 00:04:00 2006

原创 趣味题系列(2):警察抓逃犯问题

题目:A国由1000000个岛组成,岛与岛之间只能用船作为交通工具,有些岛之间有船来往,从任意一个岛都可以去到另外任一个岛,当然其中可能要换船。现在有一个警­察要追捕一个逃犯,开始时他们在不同的岛上,警察和逃犯都是每天最多乘一次船,但这个逃犯还有点迷信,每个月的13日不乘船,警察则不迷信。警察每天乘船前都知­道逃犯昨天在哪个岛上,但不知道他今天会去哪个岛。请证明,警察一定可以抓到逃犯(即到达同一个

2008-05-21 23:45:00 4092

原创 趣味题系列(1):史密斯夫妇握手问题

题目:史密斯夫妇邀请另外四对夫妇就餐,已知他们每个人都不和自己握手、不和自己的配偶握手、且不和同一个人握手一次以­上。在大家见面握手寒暄后,史密斯问大家握手了几次,每个人的答案都不一样。问:史密斯太太握手几次解答:1. 总共10个人,每个人不与自己握手,不与配偶握手,不与同一个人握超过一次手,所以每个人最多握8次手,最少0次; 2. Mr.Smith问其它9个人握了几次手,各人回答不一样,所以每个

2008-05-21 16:37:00 9626 4

原创 C++实现CString和string的互相转换

CString->std::string 例子: CString strMfc=“test“; std::string strStl; strStl=strMfc.GetBuffer(0); unicode情形下:    CStringW strw = _T("test");    CStringA stra(strw.GetBuffer(0));    strw.ReleaseBuffe

2008-05-20 21:13:00 97182 7

原创 linux下释放cache内存

linux下释放cache内存细心的朋友会注意到,当你在linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching.这个问题,貌似有不少人在问,不过都没有看到有什么很好解决的办法.那么我来谈谈这个问题.先来说说free命令[root@server ~]# free -m             total       used       fre

2008-05-17 00:02:00 27664 6

原创 Linux内存计数详解(读写文件时的缓存机制与windows不同,以致于读写大文件时cached值非常大且居高不下)

Linux内存计数详解     又中计了……     近几天用oracle,发现oracle狂用内存,经常内存小到10M的规模。汗一个,赶快让经理买了新的1G内存来装,上去后发现根本认不出来。加班一多小时才发现386内核根本不认高端内存(HIGHMEM),所以内存极限一直是896M。以前是1G内存,所以看不出来,现在换了1.5G,看出来了。     赶快上了一个2.6.12-1-686的内核,然后

2008-05-16 23:42:00 7361

原创 转载

可能我这个人比较怀旧,对什么东西都想做个记录,方便日后回忆。可能很多认识我的朋友都是通过GameRes那个作品专区。我对于当年那种疯狂编程的干劲很是自豪,现在差了很多,以前帮别人做小学生系列游戏外包的时候,可以12小时出个弱智的小游戏,那些日子一度被我称为’12小时编程挑战赛‘,只是自己跟自己比赛。 每一次发布在GameRes(排除早期的那些垃圾玩意),在写简介时我都要把自己开发用的时间写上,可是

2008-05-14 18:01:00 1247

原创 tcp要点学习-断开连接

主要部分,四次握手: 断开连接其实从我的角度看不区分客户端和服务器端,任何一方都可以调用close(or closesocket)之类的函数开始主动终止一个连接。这里先暂时说正常情况。当调用close函数断开一个连接时,主动断开的一方发送FIN(finish报文给对方。有了之前的经验,我想你应该明白我说的FIN报文时什么东西。也就是一个设置了FIN标志位的报文段。FIN报文也可能附加用户数据,如果

2008-05-14 17:59:00 2089

原创 tcp要点学习-建立连接

准备: 在这里本文将遵循上一篇文章的风格,只提TCP协议中的要点,这样我觉得可以更容易地掌握TCP。或者根本谈不上掌握,对于这种纯理论的东西,即使你现在掌握了再多的细节,一段时间后也会淡忘。 在以后各种细节中,因为我们会涉及到分析一些TCP中的数据报,因此一个协议包截获工具必不可少。在中一直使用tcpdump。这里因为我的系统是windows,所以只好使用windows平台的tcpdump,也就是

2008-05-14 17:57:00 1359

原创 让VS2005中的fstream支持中文路径文件打开

我搜索了一下这个问题的解决,参考了如下资料写了演示代码。fstream 和 中文路径  c++博客 About unicode settings in visual studio 2005, it really puzzled me a lot ms forum MSDN    我综合了以上的内容,总结了3种方法,能够较好解决大家的困扰,包括可能无法使用cout的问题。 1: /*******

2008-05-13 00:40:00 1296

原创 用fstream对二进制文件的读写

这里介绍使用fstream这个类完成这个任务,fstream在输入输出方面比较全能。 操作系统通过二进制文件格式存储大量文件。一般不指定二进制文件操作的I/O操作是面向文本的,用来读写特定编码的文本。本文介绍用C++的fstream类读写二进制文件。 读写数据以这个WebSite结构体为例         // Struct for C++ File I/O binary file sample

2008-05-13 00:31:00 6983

原创 程序员面试题(60):不要被阶乘吓倒

阶乘(Factorial)是个很有意思的函数,但是不少人都比较怕它,我们来看看两个与阶乘相关的问题: 1. 给定一个整数N,那么N的阶乘N!末尾有多少个0呢?例如:N=10,N!=3 628 800,N!的末尾有两个0。 2. 求N!的二进制表示中最低位1的位置。 请点击"我要发言",提交您的解法或者问题。 我要看答案有些人碰到这样的题目会想:是不是要完整计算出N!的值?如果溢出怎么办?事实上,如

2008-05-10 17:10:00 3988 9

原创 static_cast、dynamic_cast、reinterpret_cast、和const_cast

关于强制类型转换的问题,很多书都讨论过,写的最详细的是C++ 之父的《C++ 的设计和演化》。最好的解决方法就是不要使用C风格的强制类型转换,而是使用标准C++的类型转换符:static_cast, dynamic_cast。标准C++中有四个类型转换符:static_cast、dynamic_cast、reinterpret_cast、和const_cast。下面对它们一一进行介绍。static

2008-05-01 19:54:00 984

原创 C/C++中判断某一文件或目录是否存在

1.C++很简单的一种办法:#include iostream>#include fstream>using namespace std;#define FILENAME "stat.dat"int main(){     fstream _file;     _file.open(FILENAME,ios::in);     if(!_file)     {         coutFILENA

2008-05-01 14:23:00 2090

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除