diff --git a/demo.java b/demo.java index 10b4467..d7a2bd3 100644 --- a/demo.java +++ b/demo.java @@ -1,5 +1,48 @@ +import java.util.Scanner; + public class demo { + + // 将R进制数转换为10进制 + public static int toDecimal(String number, int base) { + return Integer.parseInt(number, base); + } + + // 将10进制数转换为R进制数 + public static String fromDecimal(int number, int base) { + StringBuilder sb = new StringBuilder(); + while (number > 0) { + int remainder = number % base; + // 对于大于9的数字,用字母表示 + if (remainder >= 10) { + sb.append((char) ('A' + remainder - 10)); + } else { + sb.append(remainder); + } + number /= base; + } + return sb.reverse().toString(); // 反转字符串以得到正确的顺序 + } + public static void main(String[] args) { - System.out.println("Hello"); + Scanner scanner = new Scanner(System.in); + + // 输入源进制和目标进制 + System.out.print("请输入进制: "); + int sourceBase = scanner.nextInt(); + System.out.print("请输入目标进制: "); + int targetBase = scanner.nextInt(); + + // 输入源进制数 + System.out.print("请输入进制数字: "); + String sourceNumber = scanner.next(); + + // 转换过程 + int decimalValue = toDecimal(sourceNumber, sourceBase); + String targetNumber = fromDecimal(decimalValue, targetBase); + + // 输出结果 + System.out.printf("转换结果: %s(%d) -> %s(%d)\n", sourceNumber, sourceBase, targetNumber, targetBase); + + scanner.close(); } }