【leetcode】762. 二进制表示中质数个计算置位
生活随笔
收集整理的這篇文章主要介紹了
【leetcode】762. 二进制表示中质数个计算置位
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
給你兩個整數 left 和 right ,在閉區間 [left, right] 范圍內,統計并返回 計算置位位數為質數 的整數個數。
計算置位位數 就是二進制表示中 1 的個數。
例如, 21 的二進制表示 10101 有 3 個計算置位。
代碼樣例:
public class Solution762 {public int countPrimeSetBits(int left, int right) {int ans = 0;for (int i = left; i <= right; i++) {int numOfOne = 0;int n = i;// 1、使用與計算有幾個1while(n>0){n = n&(n-1);numOfOne++;}// 2、得到的1的個數是質數嘛if (numOfOne==2) {ans++;continue;}for (int j = 2; j <= numOfOne-1; j++) {if (numOfOne%j==0) break;if (j == numOfOne-1) ans++;}}return ans;}public static void main(String[] args) {Solution762 solution762 = new Solution762();int ans = solution762.countPrimeSetBits(842, 888);System.out.println(ans);} }總結
以上是生活随笔為你收集整理的【leetcode】762. 二进制表示中质数个计算置位的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【数据结构】对排序的综合总结
- 下一篇: 【数据结构-学习路线】博文导航与思维导图