目录
  1. 1. 问题描述
  2. 2. 思路
  3. 3. 实现
算法-任意进制转换

问题描述

进制范围2-62,每个数字的可取值范围是0-9a-zA-Z。
输入原进制,转换后进制,待转换的整数值。
输出转换后的值。

思路

定义字符串存储0-9a-zA-Z即可。

实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String nums = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
int a = scanner.nextInt();
int b = scanner.nextInt();
String input = scanner.next();
int result = 0;
for (int i = input.length() - 1; i >= 0; i--) {
char c = input.charAt(i);
result = result + (int) (nums.indexOf(c) * Math.pow(a, input.length() - 1 - i));
}
StringBuffer sb = new StringBuffer();
while ((result / b) != 0) {
int temp = result % b;
sb.insert(0, nums.charAt(temp));
result = result / b;
}
sb.insert(0, nums.charAt(result));
System.out.println(sb);

}
}
文章作者: 李浩
文章链接: https://leehoward.cn/2019/10/17/算法-任意进制转换/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 leehoward
打赏
  • 微信
  • 支付宝

评论