题目见:http://pat.zju.edu.cn/contests/pat-a-practise/1010
本题采用二分方法搜索进制,注意由于我使用的方法是转换为十进制进行比较,所以C/C++中即使使用了long long 类型也可能会溢出,为方便起见,本题采用Java的BigInteger实现;或者可以考虑自己实现一个大数类。
import java.math.BigInteger; import java.util.Scanner; public class Main{ private static BigInteger bs0 = new BigInteger("0"); private static BigInteger bs1 = new BigInteger("1"); private static BigInteger bs2 = new BigInteger("2"); // Or you can use: Character.getNumericValue(c) private static int charToInt(char c) { return c <= '9' ? (c - '0') : (c - 'a' + 10); } private static BigInteger getBigIntegerBased10(int val) { return new BigInteger(String.valueOf(val)); } private static BigInteger getNumber(String s, BigInteger radix) { BigInteger t = bs0; BigInteger p = bs1; char c; BigInteger temp; for (int i = s.length() - 1; i >= 0; i--) { c = s.charAt(i); temp = getBigIntegerBased10(charToInt(c)); t = t.add(temp.multiply(p)); p = p.multiply(radix); } return t; } private static void handle(String a, String b, int radix) { char c = b.charAt(0); BigInteger v1 = getNumber(a, getBigIntegerBased10(radix)); if (b.length() == 1) { int bv = charToInt(c); if (v1.intValue() == bv) { System.out.println(bv + 1); } else { System.out.println("Impossible"); } return; } for (int i = 1; i < b.length(); i++) { if (b.charAt(i) > c) c = b.charAt(i); } // Determine the lower bound of the radix BigInteger l = getBigIntegerBased10(charToInt(c) + 1); BigInteger r = v1;// Determine the upper bound of the radix // System.out.println(l + " : " + r); BigInteger m, v2; while (l.compareTo(r) <= 0) { m = l.add(r).divide(bs2); v2 = getNumber(b, m); if (v1.equals(v2)) { System.out.println(m); return; } else if (v1.compareTo(v2) < 0) { r = m.subtract(bs1); } else { l = m.add(bs1); } } System.out.println("Impossible"); } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String a = scanner.next(); String b = scanner.next(); int tag = scanner.nextInt(); int radix = scanner.nextInt(); if (tag == 1) handle(a, b, radix); else handle(b, a, radix); } }
相关推荐
浙江大学PAT乙级编程在线评测(OJ)是针对编程爱好者和学习者提供的一个平台,用于练习和提升编程技能。这个压缩包中包含了1001到1025题目的AC(Accepted)代码,这意味着这些代码已经成功通过了所有测试用例,可以...
浙江大学Programming Ability Test《数据结构学习与实验指导》实验项目集里面30道题左右的答案。 网址http://pat.zju.edu.cn/ 做PAT里面的题时,我自己写得代码。
【标题】"zju.rar_ZJU_zju.rar_zju2104.cpp" 提供的信息显示,这可能是一个与浙江大学(Zhejiang University,简称ZJU)相关的编程资源包。"zju2104.cpp" 文件名暗示这可能是针对浙大某次课程或竞赛的C++代码,编号...
标题“zju1001-1399的数据”暗示了这是一系列与浙江大学(Zhejiang University,简称ZJU)相关的编程题目或测试数据。这些数据可能被用于计算机科学竞赛、在线判题系统(如POJ、ZOJ等)或者是浙江大学计算机课程的...
【标题】"zju.rar_zju 31_zju2104.cpp" 指的是一个压缩包文件,其中包含了解决浙江大学(zju.edu.cn)在线编程平台上的问题的C++源代码。这个文件可能是一个参赛者或学习者提交的解决方案,用于处理特定的算法或编程...
【标题】"ZJU1025 Wooden Sticks" 是浙江大学(Zhejiang University,简称ZJU)在线编程竞赛平台ACM上的一道题目,编号为1025。这道题目主要考察参赛者的算法设计和实现能力,属于计算机科学中的经典问题。 【描述...
- [牛客网上的PAT乙级试题整理](https://blog.csdn.net/Dirichlet_zju/article/details/80543516): 分享了20分真题及解析。 - [PAT乙级题目答案汇总](https://blog.csdn.net/shiliang97/article/details/104151263...
pat.zju.edu.cn上面的大部分代码,基本上都是我自己写的,不过初期的代码掉了几个 PAT (Advanced Level) Practise题组基本80个全了 PAT (Basic Level) Practise (中文)20个全了 《数据结构学习与实验指导》实验...
【标题】"acm新手必备 浙大acm解答 代码库 zoj zju" 提供的信息表明,这个压缩包包含的是ACM竞赛相关的代码,主要来自浙江大学(Zhejiang University,简称ZJU)的在线算法竞赛平台ZOJ(Zhejiang Online Judge)。...
【标题】"zju700代码 浙大oj代码" 涉及的主要知识点是浙江大学(Zhejiang University,简称ZJU)在线评测系统ZOJ(Zhejiang Online Judge)中的编程题目解决方案。ZOJ是为ACM/ICPC(国际大学生程序设计竞赛)训练而...
根据提供的文件信息,这份文档是浙江大学操作系统课程的讲义,属于第2章的内容,教材则是被称为“操作系统的恐龙书”的资料。该讲义涉及的主题包括操作系统服务、用户操作系统界面、系统调用、系统程序、操作系统...
【标题】"zju1048.rar_acm.zju.edu._pid_show_zju acm" 指向的是一个与浙江大学(Zhejiang University,简称ZJU) ACM竞赛相关的压缩文件,其中包含了对问题1048 "Financial Management"的解答。"acm.zju.edu." 和 ...
zju电机学作业.pdf
【标题】"ZJU/zoj 题库上的部分题源码"涉及的知识点主要集中在ACM(国际大学生程序设计竞赛)编程领域,尤其是浙江大学(ZJU)ZOJ(Zhejiang University Online Judge)题库中的题目解决方案。ZOJ是一个在线编程评测...
acm zju 额度cnacm zju 额度cnacm zju 额度cnacm zju 额度cnacm zju 额度cn
- [PAT乙级试题整理(二)——牛客网20分真题整理](https://blog.csdn.net/Dirichlet_zju/article/details/80543516) - [PAT乙级题目答案汇总PAT(BasicLevel)Practice(中文)]...
标题 "zoj 1140-zju 2433 简单题的部分答案" 暗示了这是一个关于编程竞赛题目的解答集合,其中涵盖了ZOJ(浙江大学在线评测系统)上的两道题目——ZOJ 1140 和 ZJU 2433。这些题目可能属于算法或数据结构的范畴,...
在此,我们将深入探讨Leader统帅BCD-411WLLF4D5ZJU1冰箱说明书中的重点内容,为用户全面了解和正确使用这款冰箱提供详细的指导。 首先,Leader统帅BCD-411WLLF4D5ZJU1冰箱是一款家用电冰箱,它被设计成可以适应多种...
【标题】:“浙江大学(ZJU)编程竞赛解题报告” 【内容】: 浙江大学(ZJU)在编程竞赛领域有着丰富的活动,这些比赛通常包括ACM/ICPC(国际大学生程序设计竞赛)、ZOJ(浙大在线评测系统)等平台上的题目。解题...
zju 1642 Match for Bonus DP,滚存??zju 1642 Match for Bonus DP,滚存??zju 1642 Match for Bonus DP,滚存??zju 1642 Match for Bonus DP,滚存??zju 1642 Match for Bonus DP,滚存??