当前位置: 代码迷 >> 综合 >> Base62 大数
  详细解决方案

Base62 大数

热度:83   发布时间:2024-01-14 22:02:34.0

题目

https://nanti.jisuanke.com/t/42389

题意

进制转换

思路

java大数

代码

import java.math.BigInteger;
import java.util.Scanner;public class Main {public static void main(String[] args) {// TODO Auto-generated method stubScanner cin = new Scanner(System.in);String s = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";BigInteger[] num = new BigInteger[200];for(int i = 0;i <= 61;i++){int x = s.charAt(i);String tt = ""+i;num[x] = new BigInteger(tt.toString()); }BigInteger q,w;String qi;q = cin.nextBigInteger();w = cin.nextBigInteger();qi = cin.next();BigInteger qw = new BigInteger("0");BigInteger ling = new BigInteger("0");int len = qi.length();for(int i = 0;i <= len-1;i++){char x = qi.charAt(i);qw = qw.multiply(q);int zz = x;qw = qw.add(num[zz]);}char[] ans = new char[2000];int p = 0;
//		System.out.println(qw);while(true){
//			System.out.println(qw);BigInteger yu;yu = qw.mod(w);qw = qw.divide(w);int yuu;String str=yu.toString();yuu=Integer.parseInt(str);
//			System.out.println(qw + " "+yu);ans[p] = s.charAt(yuu);p++;if(qw.compareTo(ling) == 0) break;}for(int i = p-1;i >= 0;i--){System.out.print(ans[i]);}System.out.print("\n");}}

 

  相关解决方案