- 论坛徽章:
- 0
|
帮朋友做的一个作业,要求用栈实现,快两年没写过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());
}
}
}
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/66656/showart_1422399.html |
|