// C inthammingWeight(uint32_t n) { int res = 0; for(int i = 0; i < 32; i++){ res = (n >> i) & 1u ? res + 1 : res; } return res; }
1281. 整数的各位积和之差
解题思路
取出每一位数进行累加和累乘
代码
1 2 3 4 5 6 7 8 9 10 11 12
// C intsubtractProductAndSum(int n){ int sum = 0; int product = 1; while(n > 0){ int m = n % 10; sum += m; product *= m; n /= 10; } return product - sum; }
704. 二分查找
解题思路
将数分成两堆,如果不在左边就在右边,一直这样分,直到找出或者没找出来为止
代码
1 2 3 4 5 6 7 8 9 10 11
// C intsearch(int* nums, int numsSize, int target){ int l = 0, r = numsSize - 1; while(l <= r){ int m = (r - l) / 2 + l; if(nums[m] == target) return m; if(nums[m] > target) r = m - 1; if(nums[m] < target) l = m + 1; } return-1; }