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

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

f09e1a5239e14268991e041c9c51f82f.png

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);
    }
}
相关文章
|
7月前
进制介绍
进制介绍
43 3
|
8月前
进制的详细介绍
进制的详细介绍
95 2
|
8月前
进制介绍详解
进制介绍详解
39 1
|
4天前
进制转换(m 进制 x 转换为 n 进制的数)
进制转换(m 进制 x 转换为 n 进制的数)
|
5月前
打印2进制位数的奇数位和偶数位
打印2进制位数的奇数位和偶数位
|
11月前
|
C语言
整数和浮点数的任意进制转!!(包括16进制)确定不进来看看?!
整数和浮点数的任意进制转!!(包括16进制)确定不进来看看?!
103 0
【进制转换】— 包含整数和小数部分转换(二进制、八进制、十进制、十六进制)手写版,超详细
【进制转换】— 包含整数和小数部分转换(二进制、八进制、十进制、十六进制)手写版,超详细
十进制转换为2进制
十进制转换为2进制
67 0
十进制转换为2进制
十进制与二进制转换(负数+正数)
十进制与二进制转换(负数+正数)
244 0
十进制与二进制转换(负数+正数)
|
算法 Java 程序员
使用位运算方法实现十进制数字转换为十六进制数
给定一个整数,编写一个算法将这个数转换为十六进制数。对于负整数,我们通常使用 补码运算 方法。
使用位运算方法实现十进制数字转换为十六进制数