【感谢胡光老师提供1-3题】
1. 实现分数的加法运算
编程思路:分数相加,两个分数分别是1/5和7/20,它们相加后得11/20。方法是先求出两个分数分母的最小公倍数,通分后,再求两个分子的和,最后约简结果分数的分子和分母(如果两个分数相加的结果是4/8,则必须将其化简成最简分数的形式1/2),即用分子分母的最大公约数分别除分子和分母。请用四个对话框顺序输入分子和分母,在控制台上输出其运算结果。
参考代码:
package hu; public class TestFractory { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub fracAdd(1,5,7,20);//结果为:11/20 //fracSub(1,5,7,20);//分数相减 //fracMul(1,5,7,20);//分数相乘 //fractDiv(1,5,7,20);//分数相除 } static void fracAdd(int first_numerator,int first_denominator,int second_numrator,int second_denominator){ //以下代码能够在控制台上显示结果 //需要调用求最大公约数的函数 //需要调用求最小公倍数的函数 } static int gcd(int m,int n){ return 0; } static int lcm(int m,int n){ return 0; } }
2. 求出行数和列数相等矩阵的非对角线元素之和,矩阵用二维数组表示。
编程思路:即求二维数组两条对角线之外的元素之和,如下图斜线部分以外的数的和。
参考代码:
package hu; public class TestMatrix { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int[][] a={{1,1,1,1},{1,2,2,1},{1,2,2,1},{1,1,1,1}};//初始化数组如4*4 printMatrix(a);//按二维方式输出数组 int sum=addMatrix(a); System.out.println(sum); } static void printMatrix(int[][] a){ } static int addMatrix(int[][] a){ return 0; } }
3.在任务1的基础上实现分数的四则运算,即两个分数相减,相乘和相除,要考虑到各种边界情况。
4.在任务2的基础上,实现矩阵的加法和乘法运算。这两种运算的规则请自行百度。
5.设计一个时间类,记录时间中的时、分、秒,用类中的方法完成设置、显示时间,增加1秒钟、增加1分钟、增加1小时、增加n秒钟、增加n分钟、增加n小时的功能。提示:要考虑增加后超出取值范围的情形。