算法练习(28):Stack运用之进制转换(1.3.5)

本系列博客习题来自《算法(第四版)》,算是本人的读书笔记,如果有人在读这本书的,欢迎大家多多交流。为了方便讨论,本人新建了一个微信群(算法交流),想要加入的,请添加我的微信号:zhujinhui207407 谢谢。另外,本人的个人博客 http://www.kyson.cn 也在不停的更新中,欢迎一起讨论

算法(第4版)

知识点

  • 二进制的Stack表示
  • 泛型

题目

当N为50时下面这段代码会打印什么?从较高的抽象层次描述给定正整数N时这段代码的行为。


1.3.5 What does the following code fragment print when N is 50? Give a high-level description of what it does when presented with a positive integer N.

Stack<Integer> stack = new Stack<Integer>();
while (n > 0)
{
    stack.push(n % 2);
    n = n / 2;
}
for (int d : stack)
{
    System.out.print(d);
}
System.out.println()    

分析

本人所有简书的算法文章详细分析已经移入小专栏:算法四习题详解,欢迎大家订阅

答案

n % 2得到n的二进制最低位上的值,0或者1。故上述代码就是将n的二进制位数值依次入栈,然后从栈顶将出输出,即为n的二进制表示。

广告

我的首款个人开发的APP壁纸宝贝上线了,欢迎大家下载。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,124评论 25 709
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,899评论 18 399
  • Unicode的UTF8表示法 中文编码 GB2312,包含7445个字,其中6763个汉字,1980发布。GBK...
    zlcook阅读 1,560评论 0 0
  • 后半夜 吨吨吨… 把杯中剩下的咖啡喝完之后,身体感觉又暖和了一些。 在我们这里,十月底的时候树叶基本都掉光了,在平...
    盗夜人阅读 2,481评论 1 7
  • 亲子日记第15篇2017年10月9日,星期一小雨 今天下午上了两节课后紧接着就参加年级例会,看着外面下起来的蒙蒙细...
    海内存知己_bd9e阅读 942评论 0 0