用Java语言求m,n的最大公约数,三种方法
答案:3 悬赏:60 手机版
解决时间 2021-03-21 11:16
- 提问者网友:戎马万世
- 2021-03-21 02:24
分别使用欧几里德算法、连续整数检测算法、公因数算法实现
最佳答案
- 五星知识达人网友:等灯
- 2021-03-21 04:00
1.从1开始循环。分别求出m、n的约数。找出最大公约数。
2.判断m、n的大小,从较小的开始循环,每次减一,判断是否为公约数。如果是,则为最大公约数,break;
3.2反过来,从小到大循环,找最大的。
公约数判断:
m%i=0&&n/i=0。
举第二个例子:
public class Test {
public static int getN(int m,int n){
int i = m>n?n:m;
for(;i>0;i--){
if(m%i==0&&n%i==0){
System.out.println("m、n的最大公约数为"+i);
break;
}
}
return i;
}
public static void main(String[] args) {
System.out.println(getN(100, 88));
}
}
2.判断m、n的大小,从较小的开始循环,每次减一,判断是否为公约数。如果是,则为最大公约数,break;
3.2反过来,从小到大循环,找最大的。
公约数判断:
m%i=0&&n/i=0。
举第二个例子:
public class Test {
public static int getN(int m,int n){
int i = m>n?n:m;
for(;i>0;i--){
if(m%i==0&&n%i==0){
System.out.println("m、n的最大公约数为"+i);
break;
}
}
return i;
}
public static void main(String[] args) {
System.out.println(getN(100, 88));
}
}
全部回答
- 1楼网友:迟山
- 2021-03-21 05:03
import java.io.*;
public class Test {
public static void main(String []args) {
System.out.println("input m,n :");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int m = 0, n = 0;
try
{
m = Integer.parseInt(br.readLine());
n = Integer.parseInt(br.readLine()); }
catch (IOException e)
{
System.out.println("input error!");
}
while(m!=n)
{
if(m>n)
m=m-n;
if(m<n)
n=n-m;
}
System.out.println(m);
}
}
- 2楼网友:你哪知我潦倒为你
- 2021-03-21 04:34
新建一个程序(文件菜单——新建——程序——新建文件),写代码:
input "请输入m的值: " to m input "请输入n的值: " to n temp=0 if n>m temp=m m=n n=temp endif r = m%n do while r <> 0 m = n n = r r = m%n enddo ? "最大公约数是:",n
然后,直接点击感叹号,保存并运行,图:
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯