第三题,考虑负数,考虑首0 import java.util.*; public class Main { public static void main(String[] args) { Scanner cin = new Scanner(System.in); Map<Character, Integer> toNum = new HashMap<>(); Map<Integer, Character> toChar = new HashMap<>(); for (int i = 0; i < 10; ++i) { char c = (char) ('0' + i); toNum.put(c, i); toChar.put(i, c); } for (int i = 0; i < 26; ++i) { char c = (char) ('a' + i); toNum.put(c, i + 10); toChar.put(i + 10, c); } for (int i = 0; i < 26; ++i) { char c = (char) ('A' + i); toNum.put(c, i + 36); toChar.put(i + 36, c); } while (cin.hasNextInt()) { int src = cin.nextInt(), dst = cin.nextInt(); char[] s = cin.next().toCharArray(); if (s.length == 1 && s[0] == '0') { System.out.println("0"); continue; } boolean neg = false; if (s[0] == '-') { neg = true; } int sum = 0, i = 0; if (neg) { i = 1; } for (; i < s.length; ++i) { sum *= src; sum += toNum.get(s[i]); } LinkedList<Character> stack = new LinkedList<>(); while (sum > 0) { int t = sum % dst; sum /= dst; char c = toChar.get(t); stack.addLast(c); } if (neg) { System.out.print("-"); } while (!stack.isEmpty() && stack.getLast() == '0') { stack.removeLast(); } while (!stack.isEmpty()) { System.out.print(stack.removeLast()); } System.out.println(); } } }
点赞 2

相关推荐

05-03 12:45
西南大学 Java
nsnzkv:你这项目写的内容太多了,说实话都是在给自己挖坑,就算简历过了,后面面试也难受
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务