编写2个java方法,分别求两个数最大公约数和最小公倍数
在线等快的对的有加分1楼的我看不懂啊……我是大一的……刚刚学的java……偶们用Eclipse...
在线等
快的对的有加分
1楼的我看不懂啊……我是大一的……刚刚学的java……偶们用Eclipse 展开
快的对的有加分
1楼的我看不懂啊……我是大一的……刚刚学的java……偶们用Eclipse 展开
3个回答
展开全部
最大公约数,解题思路:
如果两个数的差等于1,那么他们的最大公约数就是他们的积
否则取较大的那个数除以较小的那个数,如果能被整除,较大的数就是它们的公约数,如果不能整除,较大的数加上它本身
public static void gongyueshu(int a, int b){
if(Math.abs(a-b) == 1){
return a * b;
}else{
int n = Math.max(a,b);
int m = Math.min(a,b);
a = n;
b = m;
while( a % b != 0 ){
a += n;
}
return a;
}
}
最小公倍数,解题思路,和上面那个思路一样
如果a和b的差等于1,1就是它们的最小公倍数,否则用较大的数除以较小的,能被整除,较小的就是它们的最公倍数,不能整除,就和上面那个做法一样,只不过这次是减去,而不是加上
如果两个数的差等于1,那么他们的最大公约数就是他们的积
否则取较大的那个数除以较小的那个数,如果能被整除,较大的数就是它们的公约数,如果不能整除,较大的数加上它本身
public static void gongyueshu(int a, int b){
if(Math.abs(a-b) == 1){
return a * b;
}else{
int n = Math.max(a,b);
int m = Math.min(a,b);
a = n;
b = m;
while( a % b != 0 ){
a += n;
}
return a;
}
}
最小公倍数,解题思路,和上面那个思路一样
如果a和b的差等于1,1就是它们的最小公倍数,否则用较大的数除以较小的,能被整除,较小的就是它们的最公倍数,不能整除,就和上面那个做法一样,只不过这次是减去,而不是加上
展开全部
//以前写的C,改成java了
public class NewClass {
//两个数的最大公约数,辗转相除法
public static int GCD(int m, int n)
{
int r;
int s;
s = m * n;
if (m < n) {
r = m;
m = n;
n = r;
}
while (n != 0) {
r = m % n;
m = n;
n = r;
}
return m;
}
//最小公倍数,这个偷懒了,直接m*n/GCD(m,n)
public static int LCM(int m,int n){
m=m*n/GCD(m,n);
return m;
}
public static void main(String[] args) {
int m,n;
m=GCD(1000,590);
n=LCM(256,120);
System.out.println("GCD:"+m);
System.out.println("LCM:"+n);
}
}
public class NewClass {
//两个数的最大公约数,辗转相除法
public static int GCD(int m, int n)
{
int r;
int s;
s = m * n;
if (m < n) {
r = m;
m = n;
n = r;
}
while (n != 0) {
r = m % n;
m = n;
n = r;
}
return m;
}
//最小公倍数,这个偷懒了,直接m*n/GCD(m,n)
public static int LCM(int m,int n){
m=m*n/GCD(m,n);
return m;
}
public static void main(String[] args) {
int m,n;
m=GCD(1000,590);
n=LCM(256,120);
System.out.println("GCD:"+m);
System.out.println("LCM:"+n);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看一下吧,估计你是为了应付作业!呵呵,我们那会也是这么干的。
SCRIPT LANGUAGE="JavaScript">
<!--
//求两个数的最小公约数
function commonDivisor(x,y){
if(isNaN(x) || isNaN(y)) return "非法输入数据";
var result =[];
var max = Math.max(x,y);
var temp = 1;
while(temp<=max){
if(x%temp==0 && y%temp==0){
result.push(temp);
}else{
}
temp++;
}
return result;
}
//求两个数的最小公倍数
function commonMultiple(x,y){
if(isNaN(x) || isNaN(y)) return "非法输入数据";
var amass = x*y;
var min = Math.min(x,y);
var temp = amass;
var result=1;
while(temp>=min && temp<=amass){
if(temp%x==0 && temp%y==0){
result = temp;
}else{
}
temp--;
}
return result;
}
var t = commonMultiple(4,6);
alert(t.toString())
t = commonDivisor(4,6);
alert(t.toString());
//-->
</SCRIPT>
SCRIPT LANGUAGE="JavaScript">
<!--
//求两个数的最小公约数
function commonDivisor(x,y){
if(isNaN(x) || isNaN(y)) return "非法输入数据";
var result =[];
var max = Math.max(x,y);
var temp = 1;
while(temp<=max){
if(x%temp==0 && y%temp==0){
result.push(temp);
}else{
}
temp++;
}
return result;
}
//求两个数的最小公倍数
function commonMultiple(x,y){
if(isNaN(x) || isNaN(y)) return "非法输入数据";
var amass = x*y;
var min = Math.min(x,y);
var temp = amass;
var result=1;
while(temp>=min && temp<=amass){
if(temp%x==0 && temp%y==0){
result = temp;
}else{
}
temp--;
}
return result;
}
var t = commonMultiple(4,6);
alert(t.toString())
t = commonDivisor(4,6);
alert(t.toString());
//-->
</SCRIPT>
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询