POJ 1220 (两种任意进制之间的转换(大数),java的BigInteger)
来源:互联网 发布:机柜网络模块接线图 编辑:程序博客网 时间:2024/05/01 08:29
http://poj.org/problem?id=1220
N进制 向 M进制 转换,
1. 先将N进制 转换成10进制;
2.将结果逐次对M取余;
一开始用BigDecimal,没办法取余;参考大神的,用BigInteger
package com.zyh.hdu;import java.math.BigInteger;import java.util.Scanner;public class Poj1220 {public static void main(String[] args) {Scanner cin = new Scanner(System.in);int t = cin.nextInt();while(t-- != 0){int a = cin.nextInt();int b = cin.nextInt();String aa = cin.next();System.out.println(a+" "+aa);System.out.print(b+" "); BigInteger sum = BigInteger.ZERO;for(int i=0; i<aa.length();i++){sum = sum.multiply(BigInteger.valueOf(a)).add(BigInteger.valueOf(getnum(aa.charAt(i))));}//System.out.println(sum);String bb = "";while(!sum.equals(BigInteger.ZERO)){bb = retchar(sum.mod(BigInteger.valueOf(b)).intValue()) + bb;sum = sum.divide(BigInteger.valueOf(b));}if(bb.equals("")) bb="0";System.out.println(bb);System.out.println();}}static int getnum(char m){if(m>='0' && m<='9') return m - '0';else if(m>='A' && m<='Z') return m-'A'+10;else return m-'a'+36;}static char retchar(int i){if(i<=9) return (char) (i + '0');else if(i>=10 && i<=35) return (char)(i -10+'A');else return (char)(i-36+'a');}}/* * * * Sample Input862 2 abcdefghiz10 16 123456789012345678901234567890123456789016 35 3A0C92075C0DBF3B8ACBC5F96CE3F0AD235 23 333YMHOUE8JPLT7OX6K9FYCQ8A23 49 946B9AA02MI37E3D3MMJ4G7BL2F0549 61 1VbDkSIMJL3JjRgAdlUfcaWj61 5 dl9MDSWqwHjDnToKcsWE1S5 10 42104444441001414401221302402201233340311104212022133030Sample Output62 abcdefghiz2 1101110000010001011111001001011001111100100110001101001000110 123456789012345678901234567890123456789016 3A0C92075C0DBF3B8ACBC5F96CE3F0AD216 3A0C92075C0DBF3B8ACBC5F96CE3F0AD235 333YMHOUE8JPLT7OX6K9FYCQ8A35 333YMHOUE8JPLT7OX6K9FYCQ8A23 946B9AA02MI37E3D3MMJ4G7BL2F0523 946B9AA02MI37E3D3MMJ4G7BL2F0549 1VbDkSIMJL3JjRgAdlUfcaWj49 1VbDkSIMJL3JjRgAdlUfcaWj61 dl9MDSWqwHjDnToKcsWE1S61 dl9MDSWqwHjDnToKcsWE1S5 421044444410014144012213024022012333403111042120221330305 4210444444100141440122130240220123334031110421202213303010 1234567890123456789012345678901234567890 */
- POJ 1220 (两种任意进制之间的转换(大数),java的BigInteger)
- 进制转换小结(大数的任意进制转换)spoj429 Simple Numbers Conversion,poj 1220NUMBER BASE CONVERSION
- 任意两数制之间的转换(C++语言实现)
- 任意进制的大数转换
- 大数的任意进制之间的转换(九度OJ题目1080)
- 任意进制之间的转换
- POJ 2231 Moo Volume(任意两数之间的差的总和)
- java ACM 大数相加使用的bigInteger
- Java 大数高精度函数(BigInteger)
- POJ 1220关于大数的进制转换
- 棋盘上的麦子(BigInteger处理大数问题)
- 任意进制转换的总结 (c和java)
- 任意长度的两大数相乘
- 任意进制整数之间的相互转换(C++实现)
- 任意进制整数之间的相互转换(C++实现)
- 任意进制整数之间的相互转换(C++实现)
- 【C语言】任意进制之间的转换(支持小数部分)
- 十进制内的任意进制之间的数字转换
- 2-5 求有环链表的环入口节点(证明及代码)
- CI(2) views
- zoj 3702 Gibonacci number
- 寻找若干个字符串的最长公共前缀 Longest Common Prefix
- Android开发工程师已难找工作
- POJ 1220 (两种任意进制之间的转换(大数),java的BigInteger)
- linux_source_0_11
- struts.xml配置文件中的action的各项默认值
- 关于submit和button在javaScript中的区别
- 女扒手在内衣店中被抓时购物袋里装着死婴
- poj 1611 - The Suspects(并查集)
- 魏小亮:国内软件工程师如何面试硅谷创业公司
- iOS7中的ViewController切换
- 关于酷派8730“移动版”手机无法将应用安装在外置SD卡的解决办法和获取ROOT权限方法