编程之美
文章平均质量分 64
lwj103862095
新手交流,能者指教
展开
-
1的数目
给你一个十进制的正整数N,求1~N所有数中出现“1”的的数目。比如N=2: 1 2 ,1的个数的1.N=5: 1 2 3 4 5 ,1的个数是1。N=12:1 2 3 4 5 6 7 8 9 10 11 12 ,1的个数是5. 希望你能写一个函数F(N),返回1-N之间出现1的个数,F(12)=5;如何求得?方法一:先求某个整原创 2013-10-08 20:19:13 · 1462 阅读 · 0 评论 -
求二进制数中1的个数
对于一个32位的无符号整型变量,求其二进制表示中“1”的个数,要求算法的执行效率尽可能高。#include /* 求余和相除相结合的方法 */int Count1(int v){ int num = 0; while(v) { if(v%2 == 1) { num++; } v /=2; } return num;}/* 位移操作代替除、余操作原创 2013-10-08 16:41:16 · 1706 阅读 · 0 评论 -
判断一个数是否为2的次方幂
给定一个整数n,判断它是否为2的次方幂。思路:2,4,8,16,32....都是2的n次幂转换为二进制分别为:10 100 1000 10000 100000这些数减1后与自身进行按位与,如果结果为0,表示这个数是2的n次幂01 011 0111 01111 01111110&01 = 0 100&011 = 0原创 2013-10-08 17:25:44 · 15821 阅读 · 0 评论 -
判断两个链表是否相交
参考:http://blog.chinaunix.net/uid-20754793-id-177773.html判断两个链表是否相交:(假设两个链表都没有环)有以下三种方法:1、判断第一个链表的每个节点是否在第二个链表中2、把第二个链表连接到第一个后面,判断得到的链表是否有环,有环则相交3、先遍历第一个链表,记住最后一个节点,再遍历第二个链表,得到最后一个节点时和第一个链表原创 2013-10-09 20:30:57 · 1204 阅读 · 0 评论