Chinaunix首页 | 论坛 | 博客
  • 博客访问: 38830
  • 博文数量: 16
  • 博客积分: 640
  • 博客等级: 上士
  • 技术积分: 180
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-16 14:43
文章分类

全部博文(16)

文章存档

2011年(1)

2009年(2)

2008年(13)

我的朋友
最近访客

分类: Java

2008-11-18 18:07:38

帮朋友做的一个作业,要求用栈实现,快两年没写过Java啦!
 

import java.util.*;
import java.io.*;
public class NToR {

    public static void main(String[] args) {
        
        int n=0;
        int m=0;
        try
        {
            InputStreamReader isr=new InputStreamReader(System.in);
            BufferedReader result=new BufferedReader(isr);
            System.out.print("请输入你要转化的十进制数:");
            String s1 = result.readLine();
            n=Integer.parseInt(s1);
            System.out.print("请问你需要把它转化为多少进制(2~32):");
            String s2 = result.readLine();
            m=Integer.parseInt(s2);
        }
        catch (Exception e) {
            System.out.println("读取数据失败!");
        }

        cover_to (n,m);
    }
    
    public static void cover_to(int num,int base){
        
        int t = num;
        int r = 0;
        int n = 0;
        Stack re=new Stack();

        if (base < 2 || base > 32)
        {
            System.out.println("所输入的进制数非法!");
            return;
        }
               

        while((n = t/base) != t) {
         
                r = t%base;
                t = n;
                
                if(r > 9)
                    re.push((char)('A'+(r-10)));
                else
                    re.push((char)('0'+r));
        }
        System.out.print("转化结果为:");
        while(!re.isEmpty()){
            System.out .print(re.pop());
        }
    }
}

阅读(533) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~