Untitled
unknown
plain_text
2 years ago
1.8 kB
5
Indexable
import java.io.*; import java.util.*; class Solution { public String convertBase(String s, int a, int b) { long num = toDeci(s, a); String ans = fromDeci(b, num); return ans; } static int val(char c) { if (c >= '0' && c <= '9') return (int) c - '0'; else return (int) c - 'A' + 10; } static int toDeci(String str, int base) { int len = str.length(); int power = 1; int num = 0; for (int i = len - 1; i >= 0; i--) { if (val(str.charAt(i)) >= base) { System.out.printf("Invalid Number"); return -1; } num += val(str.charAt(i)) * power; power = power * base; } return num; } static char reVal(long num) { if (num >= 0 && num <= 9) return (char) (num + '0'); else return (char) (num - 10 + 'A'); } static String fromDeci(int base, long inputNum) { String res = ""; while (inputNum > 0) { res += reVal(inputNum % base); inputNum /= base; } res = reverse(res); return res; } static String reverse(String input) { char[] a = input.toCharArray(); int l, r = a.length - 1; for (l = 0; l < r; l++, r--) { char temp = a[l]; a[l] = a[r]; a[r] = temp; } return String.valueOf(a); } } class Main { public static void main(String[] args) throws IOException { Scanner sc = new Scanner(System.in); String s = sc.nextLine(); int x = sc.nextInt(); int y = sc.nextInt(); Solution obj = new Solution(); System.out.println(obj.convertBase(s, x, y)); sc.close(); } }
Editor is loading...