package ch01;
/**
* 练习1.5 编写一种递归方法,它返回数N的二进制表示中1的个数。利用这样的事实:
* 如果N是奇数,那么其1的个数等于N/2的二进制表示中1的个数加1.
*
*/
public class EX15 {
public static int f(int n) {
if (n == 0)
return 0;
if (n == 1)
return 1;
if (n % 2 == 0)
return f(n/2);
else
return f(n/2) + 1;
}
public static void main(String[] args) {
for (int i = 0; i <= 16; ++i) {
System.out.println(i + ": " + Integer.toBinaryString(i) +" " + f(i));
}
}
}
数据结构与算法分析Java版练习1.5
猜你喜欢
转载自blog.csdn.net/zhangyingli/article/details/48086631
今日推荐
周排行