「java最大公约数函数」求最大公约数 java
今天给各位分享java最大公约数函数的知识,其中也会对求最大公约数 java进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
java求最大公约数
最大公约数求的没问题。
求最小公倍数的时候,return (a*b)/m;这句代码中的a和b的值已经在父类代码中被
do {
temp_number = a%b;
a=b;
b=temp_number;
}
修改了,所以最终a*b就是0了。
改正:
class Son extends Father{
int m;
int x;
int y;
Son(int a,int b)
{
x=a;
y=b;
super(a,b);
}
public int f(){
m=super.f();
return (x*y)/m;
}
}
这样应该就行了
java中怎样求两个数的最大公约数?
求最大公约数:提示用户输入两个正整数,并求出它们的最大公约数。
方法一:(辗转相除法)
设用户输入的两个整数为n1和n2且n1n2,余数=n1%n2。当余数不为0时,把除数赋给n1做被除数,把余数赋给n2做除数再求得新余数,若还不为0再重复知道余数为0,此时n2就为最大公约数。
例:gcd(20,8)
20=2*8+4
8=2*4 因此gcd(20,8)=4
代码实现:
import javax.swing.JOptionPane;public class GreatestCommonDivisor{ public static void main(String[] args){
String num1String = JOptionPane.showInputDialog("Please enter the first integer:"); int num1 = Integer.parseInt(num1String);
String num2String = JOptionPane.showInputDialog("Please enter the second integer:"); int num2 = Integer.parseInt(num2String); if(num1num2){ int temp=num1;
num1=num2;
num2=temp;
} int remainder = num1%num2; int n1=num1,n2=num2; while(remainder!=0){
num1=num2;
num2=remainder;
remainder=num1%num2;
}
JOptionPane.showMessageDialog(null,String.format("The greatest common divisor for %d and %d is %d.",n1,n2,num2));
}
}12345678910111213141516171819202122232425262728
方法二:假设输入的两个整数为n1和n2,检查k(k=2,3,4…)是否为n1和n2的最大公约数,直到k大于两个数中较小的一个。
代码实现:
import javax.swing.JOptionPane;public class GreatestCommonDivisor{ public static void main(String[] args){
String num1String = JOptionPane.showInputDialog("Please enter the first integer:"); int num1 = Integer.parseInt(num1String);
String num2String = JOptionPane.showInputDialog("Please enter the second integer:"); int num2 = Integer.parseInt(num2String); int gcd=1,k=1; while(k=num1 k=num2)
{ if(num1%k==0 num2%k==0)
gcd=k;
k++;
}
JOptionPane.showMessageDialog(null,String.format("The greatest common divisor for %d and %d is %d.",num1,num2,gcd));
}
}12345678910111213141516171819202122
方法三:假设输入的两个整数为n1和n2,首先求n1和n2的最小值d,然后依次检验d,d-1,d-2,….,1是否是n1和n2的公约数,这样找到的第一个公约数就是最大公约数。
代码实现:
import javax.swing.JOptionPane;public class test{ public static void main(String[] args){
String num1String = JOptionPane.showInputDialog("Please enter the first integer:"); int num1 = Integer.parseInt(num1String);
String num2String = JOptionPane.showInputDialog("Please enter the second integer:"); int num2 = Integer.parseInt(num2String); int d; if(num1num2)
d=num1; else
d=num2; while(d=1){ if(num1%d==0 num2%d==0) break;
d--;
}
JOptionPane.showMessageDialog(null,String.format("The greatest common divisor for %d and %d is %d.",num1,num2,d));
}
}
求 最大公约数 Java
可以直接用hoe,一个Java基础操作库,里面有最大公约数和最小公倍数的算法
//最大公约数
System.out.println(NumberHoe.gcd(2,8));//result = 2
System.out.println(NumberHoe.gcd(12,16,40));//result = 4
//最小公倍数
System.out.println(NumberHoe.lcm(2,3));//result = 6
System.out.println(NumberHoe.lcm(2,6,22));//result = 66
源码如下
java最大公约数算法
//求最大公约数:较大的数除以较小的数,然后将较小的数作为下一次的大数,余数作为小数,直到较小的数为0,返回较大的数
public static int big(int num1,int num2){
int big = 0;
int small = 0;
if(num1num2){
big = num1;
small = num2;
}else{
big = num2;
small = num1;
}
if(small==0){
System.out.println("除数不能为0");
return 0;
}
while(true){
if(small==0){
return big;
}else{
int temp = big;
big = small;
small = temp%small;
}
}
}
用Java语言求m,n的最大公约数,三种方法
1.从1开始循环。分别求出m、n的约数。找出最大公约数。
2.判断m、n的大小,从较小的开始循环,每次减一,判断是否为公约数。如果是,则为最大公约数,break;
3.2反过来,从小到大循环,找最大的。
公约数判断:
m%i=0n/i=0。
举第二个例子:
public
class
Test
{
public
static
int
getN(int
m,int
n){
int
i
=
mn?n:m;
for(;i0;i--){
if(m%i==0n%i==0){
System.out.println("m、n的最大公约数为"+i);
break;
}
}
return
i;
}
public
static
void
main(String[]
args)
{
System.out.println(getN(100,
88));
}
}
关于java最大公约数函数和求最大公约数 java的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-11-27,除非注明,否则均为
原创文章,转载请注明出处。