一种基于质数(2、3、5、7、11…)的变进制数,第一位为2进制,第二位为3进制,第三位为5进制,以此类推。请将该变进制数转化为十进制数。

一种基于质数(2、3、5、7、11…)的变进制数,第一位为2进制,第二位为3进制,第三位为5进制,以此类推。请将该变进制数转化为十进制数。

import java.math.BigInteger;
import java.util.Scanner;
import static java.math.BigInteger.*;

public class Main{
    public static void main(String[] args){
        int i, num[] = {1, 2, 6, 30, 210, 2310, 30030, 510510, 9699690, 223092870}, toDec;
        BigInteger out= new BigInteger("0"), temp= new BigInteger("0");
        Scanner scanner = new Scanner(System.in);
        String str = scanner.next();
        for(i=str.length()-1; i>=0; i--){
            toDec = num[str.length() - 1 - i];
            if(str.charAt(i)>47 && str.charAt(i)<58){
                temp = BigInteger.valueOf(str.charAt(i)-48);
                out = out.add(temp.multiply(BigInteger.valueOf(toDec)));
            }else{
                temp = valueOf(str.charAt(i)-87);
                out = out.add(temp.multiply(BigInteger.valueOf(toDec)));
            }
        }
        System.out.println(out);
    }
}
上一篇:vue 简单的状态管理store


下一篇:Vue监视属性