这是一个很有意思的问题,也是在面试中最容易被问到的问题之一。这个问题有个正式的名字叫Hamming_weight,而且wikipedia上也提供了很好的位运算解决的方法,这个下面也会提到。解决这个问题的第一想法是一位一位的观察,判断是否为1,是则计数器加一,否则跳到下一位,于是很容易有这样的程序。?12345678910int test(int n) { int count=0; while(n != 0){ if(n%2 ==1) count++; n /= 2; } return count; }或者和其等价的位运算版本:?123456789int test(int n) { int co Read More
posted @ 2011-12-07 15:48 Muse牧马 Views(367) Comments(0) Diggs(2) Edit
问题描述: 给定一个十进制整数N,求出从1到N的所有整数中出现”1”的个数。 例如:N=2,1,2出现了1个“1”。 N=12,1,2,3,4,5,6,7,8,9,10,11,12。出现了5个“1”。问题求解:解法一: 最直接的方法就是从1开始遍历到N,将其中每一个数中含有“1”的个数加起来,就得到了问题的解。 代码如下:public long CountOne3(long n) { long i = 0,j = 1; long count = 0; for (i = 0; i <= n; i++) ... Read More
posted @ 2011-12-07 14:52 Muse牧马 Views(474) Comments(0) Diggs(0) Edit
首先、扩展欧几里得定理:对于两个不全为0的整数a、b,必存在一组解x,y,使得ax+by==gcd(a,b);实现如下:View Code int gcd(int a,int b){ int t,d; if(b==0) { x=1; y=0; //不明处1return a; } d=gcd(b,a%b); t=x; x=y; y=t-(a/b)*y; //不明处2return d;}上面的程序中,x和y我是用全局变量保存的我个人觉得第一次看到这个程序你会有以上两个不明白的地方(见注释),下面我分别解释不明处1:由... Read More
posted @ 2011-11-18 21:59 Muse牧马 Views(1863) Comments(3) Diggs(1) Edit
一.概述 ODBC 是一种使用SQL 的程序设计接口。使用ODBC 让应用程序的编写者避免了与数据源相联的复杂性。这项技术目前已经得到了大多数DBMS 厂商们的广泛支持。 Microsoft Developer Studio 为大多数标准的数据库格式提供了32 位ODBC 驱动器。这些标准数据格式包括有:SQL Server、Access、Paradox、dBase、FoxPro、Excel、Oracle 以及Microsoft Text。如果用户希望使用其他数据格式,用户需要相应的ODBC 驱动器及DBMS。 用户使用自己的DBMS 数据库管理功能生成新的数据库模式后,就可以使用ODB... Read More
posted @ 2011-11-16 10:02 Muse牧马 Views(245) Comments(0) Diggs(0) Edit
这几天闲着无聊,想学习下win tc库函数,找了一些资料,就写了个小游戏推箱子。游戏需要地图文件,我只编写了两个,最多支持20个,当然可以修改源代码来让它支持更多的地图。map1.dat:0,0,0,0,0,0,0,0,0,0,0,0,0,0 0,1,1,1,1,1,1,1,1,1,1,1,1,0 0,1,2,2,2,2,2,2,2,2,2,4,1,0 0,1,5,2,3,3,3,2,2,2,2,4,1,0 0,1,2,2,2,2,2,2,2,2,2,4,1,0 0,1,1,1,1,1,1,1,1,1,1,1,1,0 0,0,0,0,0,0,0,0,0,0,0,0,0,0map2.dat:0, Read More
posted @ 2011-11-11 11:32 Muse牧马 Views(255) Comments(0) Diggs(0) Edit
之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用=进行赋值操作,==进行比较,+做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。首先,为了在我们的程序中使用string类型,我们必须包含头文件<string>。如下:#include<string>//注意这里不是string.hstring.h是C字符串头文件1.声明一个C++字符串声明一个字符串变量很简单:stringS Read More
posted @ 2011-11-11 11:22 Muse牧马 Views(131) Comments(0) Diggs(0) Edit