一种基于质数(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);
    }
}
目录
打赏
0
0
0
0
17
分享
相关文章
|
10月前
进制转换(m 进制 x 转换为 n 进制的数)
进制转换(m 进制 x 转换为 n 进制的数)
使用位运算方法实现十进制数字转换为十六进制数
给定一个整数,编写一个算法将这个数转换为十六进制数。对于负整数,我们通常使用 补码运算 方法。
使用位运算方法实现十进制数字转换为十六进制数
整数和浮点数的任意进制转!!(包括16进制)确定不进来看看?!
整数和浮点数的任意进制转!!(包括16进制)确定不进来看看?!
171 0
将二进制转换为其它进制(这里转化为16进制,其它自己尝试)
代码很简单,看看就懂了,没什么好说的,就是一些位操作。 #include #define LongToBin(n) \ ( \ ((n >> 21) & 0x80) | \ ((n >> 18) & 0x40) | \ ((n >> 15) & 0x20...
916 0
OpenJudge 2972(确定进制)
时间限制: 1000ms 内存限制: 65536kB 描述 6*9 = 42 对于十进制来说是错误的,但是对于13进制来说是正确的。即, 6(13) * 9(13) = 42(13), 而 42(13) = 4 * 131 + 2 * 130 = 54(10)。
796 0
进制介绍
进制介绍
121 3
二. 进制
为什么要学习进制 因为计算机只认识二进制, 也就是0和1, 为了更好地学习计算机, 我们要深入的理解学习进制
140 0
二. 进制
进制介绍详解
进制介绍详解
104 1