解题思路

由于log2N=y 相当于 “2的y次方=n”
因此:本题等价于:
举例子计算log29=y
2的0次方和N作比较,1<9
2的1次方和N作比较,2<9
2的2次方和N作比较,4<9
2的3次方和N作比较,8<9
2的4次方和N作比较,16>9
那么相当于y=log29的范围在(3,4),那么则取3(不大于 log2N 的最大整数)

java代码

package homework1_1;/*** @description: ${description}* @create: 2019-02-03**/
public class W1_1_14 {//方法1public static int lg1(int n){//logxN=logeN/logex,//log2x=loge x/loge2double a=Math.log(n)/Math.log(2);return (int)Math.floor(a);}//方法2public static int lg2(int n){int i=1;int result=1;int count=0;while(result<n){for(int j=0;j<n;j++){result=result*2;count++;if(result>n){count--;break;}}}return count;}//方法3public static int lg3(int n) {int i = 2;int j = 0;while (true) {i *= 2;j++;if (i >= n) {return j;}}}//测试public static void main(String[] args) {for(int i=1;i<20;i++){int lg1 = lg1(i);int lg2 = lg2(i);int lg3 = lg3(i);System.out.print("N:"+i+" log2N为 ");System.out.print(lg1+"\t");System.out.print(lg2+"\t");System.out.print(lg3+"\t");System.out.println();}}
}

结果

编写一个静态方法 lg(),接受一个整型参数 N,返回不大于 log2N 的最大整数相关推荐

  1. 算法(第4版) 编写一个静态方法lg(),接受一个整型参数N,返回不大于log2N的最大整数。(不要使用Math库)

    解题思路: 1.设要求的数为k 2.则k<=log2N 3.即2的k次方小于等于N 4.第三条中2的k次方肯定大于0,以及题目要求一个整形参数N 5.可以肯定N为正整数,k的值为0或正整数 6. ...

  2. 编写一个静态方法 lg(), 接受一个整型参数 N,返回不大于 log2N 的最大整数。

    public class exc1_14 {private static int lg(int n) {int shiftRightCount = 0;do {n >>= 1; //右移一 ...

  3. java静态方法lg(),接受一个整形参数N,返回不大于log2N的最大整数不使用Math方法。

    /**  * @author lihanhan  *  */ /** *算法第四版1.1.14 */ import java.util.Scanner; public class Main { pub ...

  4. 编写一个静态方法lg(),接收一个整型参数N,返回不大于log2N(以2为底)的最大整数。不要使用Math库。

    题目: 编写一个静态方法lg(),接收一个整型参数N,返回不大于log2N的最大整数.不要使用Math库. 代码: public class Node {public static void main ...

  5. 编写一个程序,接受一个整数输入,然后显示所有小于或等于该数的素数。

    编写一个程序,接受一个整数输入,然后显示所有小于或等于该数的素数. 更多资料请点击:我的目录 #include<stdio.h>int main() {printf("请输入一个 ...

  6. 12.定义一个集合类SET,处理整型数组。

    12.定义一个集合类SET,处理整型数组.通过成员函数重载运算符"==",判断一个数是否属于集合;通 过友元重载运算符"==",判断两个集合是否相同,即集合中的 ...

  7. Java数据结构习题:编写一个max(),接受首节点作为参数,返回链表中数值最大的结点的值(假设所有数据都是正整数,如果链表为空则返回0)

    编写一个max(),接受首节点作为参数,返回链表中数值最大的结点的值(假设所有数据都是正整数,如果链表为空则返回0) 核心代码: // 编写一个max(),接受首节点作为参数,返回链表中数值最大的结点 ...

  8. 3.写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )

    题目描述 写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串.(多组同时输入 ) import java.util.Scanner; import java.lang.Math; p ...

  9. 写出一个程序,接受一个由字母和数字组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写

    002-华为机试-在线测试 题目描述 写出一个程序,接受一个由字母和数字组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数.不区分大小写. 输入描述: 输入一个有字母和数字以及空格组成的字 ...

最新文章

  1. 一份贪心算法区间调度问题解法攻略,拿走不谢
  2. windows的键盘输入重定向
  3. Altium Designer Exception ESocketError in module X2.EXE at 001B15CF (10107) on API 'Socket'
  4. 指定位数%-m.nf与%m.nf的异同
  5. python基础--GIL全局解释器锁、Event事件、信号量、死锁、递归锁
  6. C++ - STL迭代器失效
  7. scala的函数化编程
  8. php查询mysql数据库输出到前台_PHP读取数据库表显示到前台
  9. 《Lua游戏开发实践指南》一3.2游戏项目中的Lua
  10. puppet详解(六)——exec资源详解
  11. (转)机器学习入门,强烈推荐
  12. nginx php-fpm安装配置 CentOS编译安装php7.2
  13. Python 运算符day04
  14. linux 登录直接进入系统,Linux登录和推出系统入门教程
  15. 操作系统课堂笔记七-交换技术
  16. java实现简单学生信息管理系统
  17. 金叉和死叉看哪几条线?股票macd金叉和死叉怎么看?
  18. 《微信小程序商城界面设计实战》--学习笔记作业
  19. python中安装excel使用的模块
  20. js中onsubmit用法

热门文章

  1. word突然不能保存的解决方法
  2. 微信如何查看是否被删好友,这4种方法简单快捷!
  3. swiper、fullPage、hammer几种滑动插件对比
  4. 如何防止iOS工程师简历石沉大海的几大秘技(请注意查收)
  5. 2023年社交平台研究报告
  6. ArcGIS Pro 2019-nCoVn疫情热点图制作
  7. Java教务管理系统
  8. A19.从零开始前后端react+flask - 删除前后端数据
  9. java 正序a~z_java 策略模式,list集合,实现id 姓名年龄正序倒序排序(如果年龄或者姓名重复,按id正序排序)...
  10. TTL、Ping包最大字节数、网络时延、抖动、丢包率,看完瞬间变大神!