帮朋友做的一个作业,要求用栈实现,快两年没写过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) |