请各位帮忙看一下,第一个程序为什么不能输出和第二个程序一样的结果?这两个程序只有求最大公约束的代码不同
来源:互联网 发布:mac命令行移动文件夹 编辑:程序博客网 时间:2024/04/30 07:54
题目:实现分数的加减乘除。
第一个程序
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){ //以下代码能够在控制台上显示结果 //需要调用求最大公约数的函数 //需要调用求最小公倍数的函数 int m=first_denominator*second_denominator; int n=first_numerator*second_denominator+first_denominator*second_numrator; lcm(n,m); } //减法 static void fracSub(int first_numerator,int first_denominator,int second_numrator,int second_denominator){ int m=first_denominator*second_denominator;//得到分母 int n=first_numerator*second_denominator-first_denominator*second_numrator; lcm(n,m); } //乘法 static void fracMul(int first_numerator,int first_denominator,int second_numrator,int second_denominator){ int n=first_denominator*second_denominator;//得到分母 int m=first_numerator*second_numrator;//得到分子 lcm(m,n); } //除法 static void fractDiv(int first_numerator,int first_denominator,int second_numrator,int second_denominator){ int n=first_denominator*second_numrator;//得到分母 int m=first_numerator*second_denominator; lcm(m,n); } //求最大公约数的函数 static int gcd(int m,int n){ int r = 0; if(m<n) { r=m; m=n; n=r; } while(r==m%n) { if(r==0) break; m=n; n=r; } return n; } //化简 static int lcm(int m,int n){ int y=gcd(m,n); m=m/y; n=n/y; System.out.println(m+"/"+n);//<<m<<'/'<<n; return 0; }}
输出结果:
1/1
1/-6
1/14
1/1
第二个程序
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){ int m=first_denominator*second_denominator; int n=first_numerator*second_denominator+first_denominator*second_numrator; lcm(n,m); } //减法 static void fracSub(int first_numerator,int first_denominator,int second_numrator,int second_denominator){ int m=first_denominator*second_denominator;//得到分母 int n=first_numerator*second_denominator-first_denominator*second_numrator; lcm(n,m); } //乘法 static void fracMul(int first_numerator,int first_denominator,int second_numrator,int second_denominator){ int n=first_denominator*second_denominator;//得到分母 int m=first_numerator*second_numrator;//得到分子 lcm(m,n); } //除法 static void fractDiv(int first_numerator,int first_denominator,int second_numrator,int second_denominator){ int n=first_denominator*second_numrator;//得到分母 int m=first_numerator*second_denominator; lcm(m,n); } static int min(int m,int n) { int min=0; if(m<=n) { min=m; } else min=n; return min; } //求最大公约数的函数 static int gcd(int m,int n){ int i=2; int max=1; int min=min(m,n);//求最小值 while(i<=min) { if(m%i==0&&n%i==0) { m=m/i; n=n/i; max=max*i; min(m,n); i=2; continue; } ++i; } return max; } //化简 static int lcm(int m,int n){ int y=gcd(m,n); m=m/y; n=n/y; System.out.println(m+"/"+n); return 0; }}
输出结果为:
11/20
-15/100
7/100
4/7
- 请各位帮忙看一下,第一个程序为什么不能输出和第二个程序一样的结果?这两个程序只有求最大公约束的代码不同
- 第一个J2me程序,请帮忙看一下是什么问题!多谢多谢!
- 【程序26】 题目:请输入星期几的第一个字母来判断一下是星期几, 如果第一个字母一样,则继续 判断第二个字母。
- 各位帮忙看一下这个求100!的小程序哪里错啦?
- Java入门第二个程序:求两个整数的和
- 这是一个用JAVA编辑的写字板程序,但不知道为什么不能实现"查找"和"查找下一个功能",麻烦各位大虾看一下.
- 我的第一个JAVA程序,请各位老师多多指教
- 最容易的第一个WINDOWS程序
- 第一个c++程序:计算两个数的和
- 假期自学的结果,第一个c#窗台程序,祭奠一下
- 第一个cocos2d程序的代码分析
- 谁能帮忙看一下下面的程序
- 俺写的第一个javame程序,纪念一下
- 展示一下我做的第一个程序,哈哈
- Java解题:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。
- Ex26.java 题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续 判断第二个字母。
- 请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母
- 请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。
- Android中Bitmap和Drawable
- 在路上
- 记录我的iTuquSpace的搭建过程(Ruby on rails 实践练习)
- c++基础编程练习18
- select函数详解及应用
- 请各位帮忙看一下,第一个程序为什么不能输出和第二个程序一样的结果?这两个程序只有求最大公约束的代码不同
- 鸡蛋饭
- Linux(UNIX) 中一些简称的英文全称
- 设计模式思想适配器模式
- c++ 嵌套new操作构造对像的执行顺序
- 关于爱情
- ASP.NET 1.1 没有出现在 IIS 6.0 中的 Web 服务扩展列表中的解决方法
- C/C++/MFC中添加背景音乐 用的MCI 源码 和 方法说明 添加曲目路径即可用
- Servlet跳转