蓝桥杯 算法训练 ALGO-151 6-2递归求二进制表示位数
2024-09-06 13:59:14
算法训练 6-2递归求二进制表示位数
时间限制:10.0s 内存限制:256.0MB
问题描述
给定一个十进制整数,返回其对应的二进制数的位数。例如,输入十进制数9,其对应的二进制数是1001,因此位数是4。
样例输入
一个满足题目要求的输入范例。
9
9
样例输出
与上面的样例输入对应的输出。
数据规模和约定
输入数据中每一个数的范围。
例:输入在int表示范围内。
例:输入在int表示范围内。
题目解析:
在 Java 的 Integer 类的方法中,有将十进制数转换为二进制、八进制和十六进制的三个方法。若参数为正整数,则将以 X 进制无符号整数形式返回一个整数参数的字符串表示形式,否则,无符号整数值为参数加上 2^32 。
本题中直接调用 Integer 类的 toBinaryString() 方法,返回字符串后再调用 length() 方法,求得二进制表示位数。
补充: 十进制转十六进制: Integer.toHexString(int i)
十进制转八进制: Integer.toOctalString(int i)
十进制转二进制: Integer.toBinaryString(int i)
十六进制转十进制: Integer.valueOf("FFFF",16).toString()
八进制转十进制: Integer.valueOf("123",8).toString()
二进制转十进制: Integer.valueOf("1001",2).toString()
示例代码:
import java.util.Scanner; public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt(); //因为返回的是一个整数参数的字符串表示形式,所以利用length()方法求得字符串长度
int len = Integer.toBinaryString(n).length(); System.out.println(len);
}
}
最新文章
- 6.nodejs权威指南--进程
- php 上传文件实例 上传并下载word文件
- ArcGIS初步 系列视频教程
- 【转】PHP date(";Y-m-d H:i:s";);获取当前时间 差8小时解决办法
- iOS上传应用过程中出现的错误"images contain alpha channels or transparencies"以及解决方案
- UML: 协作图
- Win2008R2PHP5.4环境加载Zend模块
- iOS应用中URL地址如何重定向-b
- [转] nginx 开启gzip压缩--字符串压缩比率很牛叉
- C++ 智能指针auto_ptr
- 行内人解读开发一个App需要多少钱?
- 换行符以及for循环的优化
- 将MPLS编译进linux内核中
- 认识J2SE
- 手机自动化测试:appium源码分析之bootstrap十五
- 【JS】ajax 实现无刷新文件上传
- java文件的基本操作示例
- c# 串口SerialPort
- Netty 基本组件与线程模型
- ABP Changing Httpcode status