/**
 * @author lihanhan
 *
 */

/**

*算法第四版1.1.14

*/
import java.util.Scanner;
public class Main {
public static int lg(double N) {
    //log2|N=K  2^k=N
    int k=0;
    if(N>0&&N<1) {
        double count=1;
        while(count>=N) {
            count*=1/2.0;
            k-=1;
        }
        return k+1;
    }
    else if(N>=1) {
        int count =1;
        while(count<N) {
            count*=2;
            k+=1;
        }
        return k-1;
    }
    else {
        return -1;
    }
    
}

public static void main(String[] args) {
    Scanner sc=new Scanner(System.in);
    while(sc.hasNext()) {
        double N=sc.nextDouble();
        System.out.println(lg(N));
    }
}
}

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

  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 的最大整数

    解题思路 由于log2N=y 相当于 "2的y次方=n" 因此:本题等价于: 举例子计算log29=y 2的0次方和N作比较,1<9 2的1次方和N作比较,2<9 2的 ...

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

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

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

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

  5. Java笔记-JNI中简单的参数与返回值处理

    目录 基本概念 代码及演示 基本概念 此篇博文记录了JNI的基本规范,与使用: https://blog.csdn.net/qq78442761/article/details/94849374 在本 ...

  6. java gzip压缩json_将PHP程序中返回的JSON格式数据用gzip压缩输出的方法

    1.使用压缩与不使用压缩的HTTP输出比较 2.开启gzip 利用apache mod_deflate module 开启gzip 开启方法: sudo a2enmod deflate sudo /e ...

  7. java dagger2_从零开始搭建一个项目(rxJava+Retrofit+Dagger2) --完结篇

    鸡汤:感到迷茫是因为你没有给自己做好人生规划 接上一章的内容,如果还没看过的朋友, 请点 本章内容 Dagger2的引入 Dagger2的引入 Dagger2是一个依赖注入框架,那么dagger2能起 ...

  8. 12层的bert参数量_只需一个损失函数、一个超参数即可压缩BERT,MSRA提出模型压缩新方法...

    来自武汉大学.北京航空航天大学和微软亚洲研究院的这项研究为模型压缩提供了新方向. 机器之心报道,参与:魔王. 论文链接:https://arxiv.org/pdf/2002.02925.pdf 这篇论 ...

  9. java for语句 实现一个功能:

    java for语句 实现一个功能: [1]请录入10个整数,当输入的数是666的时候,退出程序. [2]判断其中录入正数的个数并输出. [3]判断系统的退出状态:是正常退出还是被迫退出. impor ...

最新文章

  1. cvsdfgdfdf
  2. Android高级编程(笔记)-第6章 数据存储、检索和共享--2--本地文件
  3. QT的QLayer类的使用
  4. iOS-读写plist文件
  5. 第一篇:Spring Boot 快速入门篇
  6. Jeecg引领企业开发潮流,开启插件开发时代,微信企业号插件(jeecg-p3-biz-qywx)首次发布
  7. 深入系统底层trace
  8. 谈谈Android 6.0运行时权限理解
  9. 【渝粤教育】国家开放大学2018年春季 8612-22T传染病护理学 参考试题
  10. python为何排名越来越前_为什么C#排名和Python相差越来越大?
  11. 飞控C语言开源,几大主流开源飞控平台优劣比较.doc
  12. 项目上线工作流程梳理
  13. 上海大学计算机工程与科学学院研究生导师,上海大学计算机工程与科学学院硕士生导师刘方方...
  14. 关于移动Web性能的5个神话(转)
  15. 小白白红队初成长(1)被动信息收集
  16. 我的世界天空之城服务器位置,我的世界1.7.2服务器天空之城
  17. FixMatch论文摘记
  18. 车间调度-灰狼算法的应用:以算例MK01为例
  19. es安装插件 ik ansj pinyin
  20. Android开发之使用URL访问网络资源

热门文章

  1. oracle erp日志,错误,什么地方看日志
  2. Revit二次开发_显示最近的轴网交点
  3. 抽奖动画效果html,利用css实现一个抽奖动画效果
  4. 字节跳动二号人物——山西人张利东
  5. 相关向量机(RVM)
  6. 网络安全攻防在线学习平台总结
  7. 精益管理的几大核心理念
  8. Ubuntu18.04 设置Speaker为默认播放器
  9. 计算机中pdf怎么预览,如何在浏览器中开启PDF时默认显示Adobe Reader XI工具栏
  10. PAData:FCoin潜在受害者或超2000人,人均损失或超25 BTC