代码改变世界

随笔档案-2011年9月29日

求二进制数中1的个数

2011-09-29 12:00 by ...平..淡..., 166 阅读, 收藏,
摘要: 编程之美中有这道题,不过我比较喜欢上面的有一种方法,很简洁,如下: 1 #include <iostream> 2 using namespace std; 3 int main() 4 { 5 int v = 9,count=0; 6 while(v) 7 { 8 v&=(v-1); 9 count++;10 }11 cout<<count<<endl;12 return 0;13 }上次看到另一种方法,编程之美好像没有讲,感觉也很牛逼,如下: 1 /* 2 分析如下: 3 举个例子,给定一个数,为 10 01 ... 阅读全文

二维数组作为参数传递

2011-09-29 11:08 by ...平..淡..., 2013 阅读, 收藏,
摘要: 做 图的m--着色问题 的时候,在“二维数组作为参数传递给函数”的问题上果断阵亡(原先一直没怎么用过二维数组做参数传递),上网查了些资料,嘿嘿,搞清楚了,好好总结了下:问题描述:当二维数组作为参数传递给函数时,函数的形参不能简单地写双重指针,因为编译器实际寻址如下:对于数组 int p[m][n];如果要取p[i][j]的值,编译器是这样寻址的:p + i*n + j; 如果我们省略了第二维或者更高维的大小,编译器将不知道如何正确的寻址。因此如果我们在编写程序的时候需要用到各个维数都不固定的二维数组作为参数,虽然这个时候编译器还是不能识别,但我们可以把二维数组当做普通的指针,将它的大小用两个参 阅读全文

回溯法-------图的m--着色问题

2011-09-29 10:49 by ...平..淡..., 524 阅读, 收藏,
摘要: 在题目的求解过程中,遇到了关于将二维数组作为参数传递给函数的问题,纠结了半天,上网查了一些,我在下一篇日志中得总结一下了。。。图的m--着色问题 1 /* 2 图的m--着色问题分析: 3 通过解空间分析,可推断用回溯法求解。 4 限界条件:判断k点与其他点i存在边的情况下,为k点找到的颜色是否与i相同 5 */ 6 #include <iostream> 7 using namespace std; 8 9 int x[100];10 11 int NextColor(int k,int n,int m,int **G) //寻找下一种颜色 12 {13 w... 阅读全文