157k views
0 votes
5 write a recursive method that returns the number of 1's in the binary representation of n. use the fact that this is equal to the number of 1's in the representation of n/2, plus 1, if n is odd.

User Jeem
by
7.3k points

1 Answer

6 votes
Assuming n is a decimal number.
Divide n by 2 repeatedly, and summing the remainders will give the number of one's in binary representation.

pseudocode of algorithm:
Enter value of n:
sum=0;
while n>0 {
sum=mod(n,2);
n=n/2 [integer division]
}
Display n, sum


User Dhumil Agarwal
by
9.0k points