package Others;import java.util.Scanner;/*** @author Nishita Aggarwal* <p>Brian Kernighan’s Algorithm* <p>algorithm to count the number of set bits in a given number* <p>Subtraction of 1 from a number toggles all the bits (from right to left) till the* rightmost set bit(including the rightmost set bit). So if we subtract a number by 1 and do* bitwise & with itself i.e. (n & (n-1)), we unset the rightmost set bit.* <p>If we do n & (n-1) in a loop and count the no of times loop executes we get the set bit* count.* <p>* <p>Time Complexity: O(logn)*/public class BrianKernighanAlgorithm {/*** @param num: number in which we count the set bits* @return int: Number of set bits*/static int countSetBits(int num) {int cnt = 0;while (num != 0) {num = num & (num - 1);cnt++;}return cnt;}/** @param args : command line arguments */public static void main(String args[]) {Scanner sc = new Scanner(System.in);int num = sc.nextInt();int setBitCount = countSetBits(num);System.out.println(setBitCount);sc.close();}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。