JAVA的一道程序题,新手高分求助……(核心算法已经解决,求输入输出及异常处理)

问题描述:
同一个数会由于采用不同的基数而使得其表现的形式是完全不一样的,在我们的学习中,我们熟悉的基数有10进制、12进制、60进制、2进制、8进制和16进制。比如数据12,如果我们用2进制表示,则它就是1100;如果用3进制表示就是110;如果用8进制表示则是14。我们的编程任务就是与数的进制(也就是基数)有关。
程序中我们会给大家很多个数对(假设每个数对的数用X和Y表示),程序需要解决的问题就是为X和Y各选择一个最小的基数,以使得这两个数在其选择的基数上是一对相等的数。
例如,12和5这个数对,我们可以为12选择基数3,为5选择基数6,这样一来12(base 3)=5(base 6),因为12(base 3)就是10进制数5,而5(base 6)也是10进制数中的5。
输入:
程序的输入是通过文件完成的。
文件中的每一行都包含一个数对X和Y,两个数通过一个或多个空格符分割,与X和Y相关联的有效基数值范围为2~36。X和Y的合理数值表示字符包括0—9和A-Z(表示数值10-35)。
文件的最后一行用一个数字0表示输入的结束。
样例输入文件(base.in)
12 5
10 A
12 34
123 456
1 2
10 2
0
输出:
结果应该存放在一个文件中,该文件中的每一行对应为输入文件中相应的那行数对,输出的格式按照下面的示例文件即可。
样例输出文件(base.out)
12 (base 3) = 5 (base 6)
10 (base 10) = A (base 11)
12 (base 17) = 34 (base 5)
123 is not equal to 456 in any base 2..36
1 is not equal to 2 in any base 2..36
10 (base 2) = 2 (base 3)
大家请直接给出代码,核心算法在API的Integer.parseInt中有,所以不需要,只求个文件输入输出及同时进行的异常处理即可,多谢了,如果可以运行的话我会追加分数的

 
 
 
比如:

import java.io.*;

class C {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new FileReader("base.in"));
        PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("base.out")), true);

        outmost:
        for (String line; (line = br.readLine()) != null; ) {
            String[] nums = line.split("\\s+");
            if (nums.length == 1 && Integer.parseInt(nums[0]) == 0)
                break;

            for (int rdx0 = 2; rdx0 <= 36; rdx0++)
                for (int rdx1 = 2; rdx1 <= 36; rdx1++)
                    try {
                        if (Integer.parseInt(nums[0], rdx0) == Integer.parseInt(nums[1], rdx1)) {
                            out.printf("%s (base %s) = %s (base %s)%n", nums[0], rdx0, nums[1], rdx1);
                            continue outmost;
                        }
                    } catch (NumberFormatException e) { /* 不必做什么 */ }

            out.printf("%s is not equal to %s in any base 2..36%n", nums[0], nums[1]);
        }
    }
}
 
 
 
温馨提示:内容为网友见解,仅供参考
第1个回答  2007-10-11
。。看着挺难

java题目 高分求助(紧急)
1.i=5j=-3 2.4 3.2 4.int: 8 double: 8.0 5.Not Equal 6.SubClass: 200 SuperClass: 100 7.import java.util.Scanner;public class TestMath { public static void main(String[] args) { double sum = 1;Scanner sc = new Scanner(System.in);int num = sc.nextInt();int i ...

高分求助win2003下奇怪问题(病毒或木马?),请高手解决,重做系统的请绕道...
安好金山毒霸可以接上网络。用金山卫士扫描,看看有什么木马,先不要清除,记下木马的类型,来源,再用[金山网盾]解决一下你要解决的问题。再就要清理垃圾和注册表,系统修复一下,优化一下。如果在它的主页显示五个星——你的系统非常安全,请继续保持,问题可能会解决了。有些不便多说——可到我空间...

高分求助一道软件测试题 关于黑盒测试的
1,1,5 组合中有特殊字符@,%,& 注意:要设计测试用例还必须考虑要输入是R和P组合,输出是零钱的组合。但是使用等价类分析如上表,但愿能给你解答的思路 2) 这道题不太能整理一个的思路。就不能帮到你了。3) 用因果图法设计以下程序的测试用例。这到问题比较简单画了个图片给你 4) 决策表...

C语言经典100例问题,取一个整数a从右端开始的4~7位,求助,高分!
移位操作是按二进制算的, 右移 一下相当于除2,左移乘2,说以10进制的不能通过移位实现取位,2,8,16进制的都可以哦。不过还是有办法,就是用16进制变量存你的10进制变量,然后按16进制移位取位,最后按16进制输出,可达到你想要的效果哦~我要上课去了,如代码还是写不出来,追问一下,我回来帮你写个 本回答由网...

高分求助热处理实例~`
一、 工作条件以及材料与热处理要求 1.条件: 在滑动轴承中工作,υ周< 2m\/S,要求表面有较高在硬度的小轴,心轴.如机床走刀箱、变速箱小轴..要求: 45、50,形状复杂的轴用40Cr、42MnVB.调质,HB228-255,轴颈处高频淬火,HRC45-50 2.条件: 在滑动轴承中工作,υ周< 3m\/S,要求硬度高、变形小,如中间带传动...

高分求助:蓝屏 IRQL_NOT_LESS_OR_EQUAL ***STOP:0x0000000a
◆错误分析:通常是因为某个驱动程序在完成了一次输入\/输出操作后, 没有正确释放所占有的内存 ◇解决方案: 第一步:点击开始-->运行:regedt32, 找到[HKLM\\SYSTEM\\Currentcontrol set\\control\\session manager\\memory management], 在右侧新建双字节值"TrackLockedPages", 值为1. 这样Windows便会在错误再次出现时跟踪...

高分求助对视频格式和音乐格式详解
*.mid文件可以用作曲软件写出,也可以通过声卡的MIDI口把外接音序器演奏的乐曲输入电脑里,制成*.mid文件。 WMA:最具实力的敌人 WMA (Windows Media Audio) 格式是来自于微软的重量级选手,后台强硬,音质要强于MP3格式,更远胜于RA格式,它和日本YAMAHA公司开发的VQF格式一样,是以减少数据流量但保持音质的方法来达到...

高分跪求后缀为.xml 如何打开的方法。电脑资深达人帮忙解决一下。
一般来说,内容加密有几种可能,常见的一种简单处理方法是,虽然文件后缀是xml,但实际内容由非标准XML格式书写,结果简单使用记事本打开就会变成乱码。想看到XMl实际内容,恐怕你要从源码上反向分解或者找相关编写人士解决了。 追问 大哥 这是什么情况啊?就是说下载的那网站的问题了? 追答 不是下载网站有问题,是人家就...

高分求助:电脑经常会自动生成用户,并且会植入一些木马文件,如何...
360卫士和360杀软都不是适合于服务器的安全软件,而且都没有网络防火墙。建议你安装一款服务器版的带防火墙的杀软~另外修复漏洞什么的就不用说了吧。服务器安全防护一般和单机安全防护不太一样,楼主在会搭建服务器的同时也请学习下相关知识。最后只能建议你关闭一些常见的危险服务比如TELNET等。另外创建...

C语言程序求助
\/*1.按要求输入界面;2.按要求输入班级人数并判断大\/小班,判断规则:5人以上为大班,5人及以下为小班;3.通过键盘输入班级学生的成绩;4.判断学生成绩是否合格,并输出。判断规则:60分以下不及格输出“补考”,60-79分输出“合格”,80-100分输出“优秀”,负分数和100分以上显示“错误”。5.求...

相似回答
大家正在搜