初入C,以做一个例题有感。
2015-09-21 21:04
232 查看
题目:写一个函数返回参数二进制中 1 的个数
方法1:
我自己写的,运用'%'和'/',感觉挺简单的。
方法2:
运用移位'>>',我还不太熟悉运用移位操作符,以后得加强练习。
方法3:
运用'&'和移位,这个真的不易想到,我想得数学好才能想到吧!怪我数学不好,得加强算法学习,多接触,积累经验。
总结: 初入'C',感觉写代码好具有逻辑性呀!好奇妙的感觉!刚刚百度了一下,上面陈述了好多种方法,但真的太弱了,有些竟然连看都还看不懂,好忧伤!慢慢来吧! 已经选择了,决定了走程序员这条路,就不要抱怨,不要再偷懒,不要找各种借口和理由放纵自己,远离电影,少靠近床,踏踏实实努力学习一年! 我一直相信:努力了不一定会成功,但不努力一定不会成功!无论最后结果如何,但只有现在努力了,以后,我才不会怨恨自己,不会悔恨,心里也是美好的。
方法1:
我自己写的,运用'%'和'/',感觉挺简单的。
int count_one_bit(int num) { unsigned int count=0; while(num) { if(num%2==1) count++; num=num/2; } return count; } int main() { int n = 0; int count = 0; scanf("%d", &n); count = count_one_bit(n); printf("%d\n", count); system("pause"); return 0; }
方法2:
运用移位'>>',我还不太熟悉运用移位操作符,以后得加强练习。
int count_one_bit(int num) { int count = 0; int i = 32; while (i--) { if (num & 1 == 1) count++; num = num >> 1; } return count; }
方法3:
运用'&'和移位,这个真的不易想到,我想得数学好才能想到吧!怪我数学不好,得加强算法学习,多接触,积累经验。
int count_one_bit(int num) { int count = 0; while (num) { count++; num = num & (num - 1); } return count; }
总结: 初入'C',感觉写代码好具有逻辑性呀!好奇妙的感觉!刚刚百度了一下,上面陈述了好多种方法,但真的太弱了,有些竟然连看都还看不懂,好忧伤!慢慢来吧! 已经选择了,决定了走程序员这条路,就不要抱怨,不要再偷懒,不要找各种借口和理由放纵自己,远离电影,少靠近床,踏踏实实努力学习一年! 我一直相信:努力了不一定会成功,但不努力一定不会成功!无论最后结果如何,但只有现在努力了,以后,我才不会怨恨自己,不会悔恨,心里也是美好的。
相关文章推荐
- Effective Java 学习 第五条 避免创建不必要的对象
- 【JDBC】day04_事务_批处理_自动主键_DAO
- 数据库概论学习笔记------数据的完整性约束
- nefu1037回文子序列数
- C++ 版本的 行为树的简单实现
- Android学习进阶路线导航线路(Android源码分享) ...
- HDOJ2063过山车 匈牙利算法
- 问题-XE8客户端访问Webservice时报“no selected dom vendor”
- [codevs2419]ISBN号码
- CUDA VS2008 win32 控制台 创建static device lib 库
- Objective-C入门12:字符串
- POJ 2828 线段树
- 设计模式之适配器模式
- 叉积判断点在多边形内外 & poj2318
- 关于打印浮点数的一个问题
- C#软件开发实例.私人订制自己的屏幕截图工具(十)在截图中包含鼠标指针形状
- hdu 1051-Wooden Sticks
- 代码中特殊的注释技术——TODO、FIXME和XXX的用处
- 春暖花会开
- java三元运算a?b:c(2015年9月20日)