Algorithms 练习1.1.14

来源:互联网 发布:顾宪成 知乎 编辑:程序博客网 时间:2024/05/16 23:43

编写一个静态方法lg(),接受一个整形参数N,返回不大于log2N的最大整数。不要使用Math函数库。

import edu.princeton.cs.algs4.StdIn;import edu.princeton.cs.algs4.StdOut;public class Test {    public static void main(String[] args) {        StdOut.println("Input your number:");        int n = StdIn.readInt();        StdOut.println("Answer: " + (32 - Integer.numberOfLeadingZeros(n) - 1));    }}

考虑的关键在于在java中整数的储存是二进制的,所以结合log2进行考虑。

原创粉丝点击