【Java练习2——进制转换】POJ 1220
来源:互联网 发布:永州金域名都二手房 编辑:程序博客网 时间:2024/05/01 21:20
java自带的进制转换限制了范围n<=35,这题是2<=n<=62,不能满足要求,所以要以10进制为桥梁转化,注意0的情况!
import java.io.*;import java.math.*;import java.util.*;public class Main{public static void main(String[] args){Scanner cin = new Scanner(new BufferedInputStream(System.in));int t;int s = 0;t = cin.nextInt();while((t--)!=0){BigInteger b1,b2;b1 = cin.nextBigInteger();b2 = cin.nextBigInteger();String str = cin.next();int i,j;BigInteger sum = BigInteger.valueOf(0);BigInteger tmp = BigInteger.valueOf(1);for(i=str.length()-1;i>=0;i--){char c = str.charAt(i);if(c>='0' && c<='9')s = c-'0';if(c>='A' && c<='Z')s = c-'A'+10;if(c>='a' && c<='z')s = c-'a'+10+('Z'-'A'+1);sum = sum.add(BigInteger.valueOf(s).multiply(tmp));tmp = tmp.multiply(b1);}//System.out.println(sum);int cnt=0;int ans[] = new int[1000];while(sum.compareTo(BigInteger.valueOf(0))!=0){cnt++;ans[cnt] = sum.mod(b2).intValue();sum = sum.divide(b2);}System.out.print(b1+" "+str+"\n"+b2+" ");if(cnt==0)System.out.print(0);while(cnt!=0){int w = ans[cnt--];char c;if(w<10)c = (char)(w +'0');elseif(w<36)c = (char)(w-10+'A');elsec= (char)(w-36+'a');System.out.print(c);}System.out.printf("\n\n");}}}
- 【Java练习2——进制转换】POJ 1220
- JAVA小练习-进制转换2
- 基础练习——进制转换
- 编程练习——进制转换
- POJ 2305 Basic remains——Java进制转换
- 【Java 进制转换】POJ
- Java程序练习-进制转换
- JAVA小练习-进制转换1
- Java中的进制转换,练习
- 进制转换练习
- poj 1220 java大数处理进制转换
- poj 1131 进制转换 Java高精度
- poj 1220 进制转换
- java小练习---进制之间的转换
- Java day02 基本语句练习 进制转换
- 【Java练习7——Catalan数】POJ 2084
- 【栈与队列】SDUT练习2—数据结构实验之栈一:进制转换
- Java练习(6)——十进制转换为2、16进制
- 编程珠玑 - 算法优化 - 过滤敏感词 - 第三步:树形结构
- poj2502
- Selenium XPATH使用
- Bellman-Ford
- Android布局学习笔记
- 【Java练习2——进制转换】POJ 1220
- 有关Android线程的学习
- Gtkmm 主窗口与其对话框之间的切换
- vimrc_example.vim
- ftp修改主目录
- uva 156 Ananagrams
- ZODB - a native object database for Python
- WCF学习笔记(四)数据契约、版本控制、错误
- ZODB入门 -- 如何通过面向对象的动态语言 Python 使用对象数据库