题解 | #十进制数转二进制数#

十进制数转二进制数

https://www.nowcoder.com/practice/90d2de77e05e497eacc85e6b50272900

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int num = scanner.nextInt();
	  个人理解:解法1和解法2通用性都比较强,利用栈的话,就是考虑到他先进后出的性质,刚好满足进制转换时倒着
	  输出结果的特点;而利用字符串呢?因为它的拼接具有顺序性,可以很好的应对进制转换时对应倒着的特点
        
        //解法1:用栈实现二进制转换
         Stack<Integer> res=new Stack();
          while(num>=2){
           res.push(num%2);
           num/=2;
          }
         res.push(num);//加入最后一个元素
        while(!res.isEmpty()){
          System.out.print(res.peek());
          res.pop();
          }
        //---------------------------------------
    //解法二
    String str="";
    while(num>=2){
        str=num%2+str;
        num/=2;
    }
    str=num+str;
    System.out.println(str);
    }
}

#进制转换#
全部评论

相关推荐

点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务