请教数据结构中栈的用法

HzieeNO_1 2005-11-09 08:06:57
我的目的是:把十进制的9转化成2进制的形式,因为转化规则除二取余,直到商为零为止,倒排

import java.io.*;
import java.util.Stack;
public class my10to2 {

public static void main(String[] args){
int m=9;

Stack stk=new Stack();
do{
if(m%2==0) stk.push("0");
else stk.push("1");
m=m/2;
}while(m!=1||m!=0);
while(!stk.empty())
System.out.println(stk.pop());

}
}
编译结果为:
Note: G:\JavaBar\JCroJ\my10to2.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

Process completed.
运行结果为:请高手指教一下!
Exception in thread "main" java.lang.OutofMemoryError:Java heap space
...全文
168 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
happy8888 2005-11-09
  • 打赏
  • 举报
回复
楼上说得对
while(m!=1||m!=0); 此循环为死循环了
因为 m != 1 和 m != 0 不可能同时为假
HzieeNO_1 2005-11-09
  • 打赏
  • 举报
回复
谢谢上面的朋友,我的问题就出在条件约束上!
shine333 2005-11-09
  • 打赏
  • 举报
回复
do { } while (m >= 2); or
do { } while (m != 1 && m!= 0);

m != 1 -> m ∈ (-∞, 1) ∪ (1, +∞)
m != 0 -> m ∈ (-∞, 0) ∪ (0, +∞)
m != 1 || m != 0 -> m ∈ (-∞, 1) ∪ (1, +∞) ∪ (-∞, 0) ∪ (0, +∞)-> m ∈ (-∞, +∞)

所以死循环
believefym 2005-11-09
  • 打赏
  • 举报
回复
Integer.toBinaryString(9)不就搞定了

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧