Loading

考研机试 42.进制转换

 

时间:2021/03/07

 

一.题目描述

将一个长度最多为30位数字的十进制非负整数转换为二进制数输出。

输入描述

多组数据,每行为一个长度不超过30位的十进制非负整数。
(注意是10进制数字的个数可能有30个,而非30bits的整数)

输出描述

每行输出对应的二进制数。

题目链接

https://www.nowcoder.com/practice/53447aa04f32460aa20ee11d02416e3b?tpId=40&tqId=21373&rp=1&ru=%2Fta%2Fkaoyan&qru=%2Fta%2Fkaoyan%2Fquestion-ranking&tab=answerKey

 

二.算法

题解

由于读入的十进制最多可以到30位,所以要用BigInteger对象进行存储,然后通过toString方法输出为二进制。

代码

import java.util.Scanner;
import java.math.BigInteger;

public class Main{
    
    public static void main(String[] args){
        
        Scanner in = new Scanner(System.in);
        
        while(in.hasNext()){
            
            //读取输入
            BigInteger num = new BigInteger(in.next());
            
            //转化为二进制
            System.out.println(num.toString(2));
        }
    }
}

 

posted @ 2021-03-07 18:21    阅读(52)  评论(0编辑  收藏  举报