P1604_B进制星球(JAVA语言)
思路:BigInteger 五杀!利用BigInteger自带的进制转换。
//第一次提交WA了几组数据,下载测试数据发现带字母的答案要转换为大写。
题目背景
进制题目,而且还是个计算器~~
题目描述
话说有一天,小Z乘坐宇宙飞船,飞到一个美丽的星球。因为历史的原因,科技在这个美丽的星球上并不很发达,星球上人们普遍采用B(2<=B<=36)进制计数。星球上的人们用美味的食物招待了小Z,作为回报,小Z希望送一个能够完成B进制加法的计算器给他们。 现在小Z希望你可以帮助他,编写实现B进制加法的程序。
输入输出格式
输入格式:
共3行第1行:一个十进制的整数,表示进制B。第2-3行:每行一个B进制数正整数。数字的每一位属于{0,1,2,3,4,5,6,7,8,9,A,B……},每个数字长度<=2000位。
输出格式:
一个B进制数,表示输入的两个数的和。
输入输出样例
输入样例#1: 复制
4 123 321
输出样例#1: 复制
1110
说明
进制计算器
import java.math.BigInteger;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int n=in.nextInt();
String a=in.next();//读入
String b=in.next();
BigInteger cona= new BigInteger(a,n);//将一个n进制的a转换为10进制
BigInteger conb= new BigInteger(b,n);//将一个n进制的b转换为10进制
BigInteger c=cona.add(conb);//计算两个十进制数和
String s=new BigInteger(c+"",10).toString(n);//将一个10进制的c转换为n进制
System.out.println(s.toUpperCase());
}
}