求最大公因子的递归与循环的比较
2014-04-15 21:47
267 查看
package trace01;
import java.util.Scanner;
public class gsaDemo {
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
System.out.println("请输入求最大公约数的两个数:");
System.out.println("请输入第一个数 m:");
int m;
m=scanner.nextInt();
System.out.println("请输入第二个数 n:");
int n;
n=scanner.nextInt();
long begintime=System.currentTimeMillis();
int gcds=gcds(m,n);
System.out.println("最大公约数为:"+gcds);
long endtime=System.currentTimeMillis();
System.out.println("递归方法的调用时间为:"+(endtime-begintime));
long begintime2=System.currentTimeMillis();
int gcdx=gcdx(m,n);
System.out.println("最大公约数为:"+gcdx);
long endtime2=System.currentTimeMillis();
System.out.println("循环方法的调用时间为:"+(endtime2-begintime2));
}
public static int gcds(int m,int n)
{
if(n==0)
return m;
else
return gcds(n,m%n);
}
public static int gcdx(int m,int n)
{
int a;
while(n!=0)
{
a=m%n;
m=n;
n=a;
}
return m;
}
}
import java.util.Scanner;
public class gsaDemo {
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
System.out.println("请输入求最大公约数的两个数:");
System.out.println("请输入第一个数 m:");
int m;
m=scanner.nextInt();
System.out.println("请输入第二个数 n:");
int n;
n=scanner.nextInt();
long begintime=System.currentTimeMillis();
int gcds=gcds(m,n);
System.out.println("最大公约数为:"+gcds);
long endtime=System.currentTimeMillis();
System.out.println("递归方法的调用时间为:"+(endtime-begintime));
long begintime2=System.currentTimeMillis();
int gcdx=gcdx(m,n);
System.out.println("最大公约数为:"+gcdx);
long endtime2=System.currentTimeMillis();
System.out.println("循环方法的调用时间为:"+(endtime2-begintime2));
}
public static int gcds(int m,int n)
{
if(n==0)
return m;
else
return gcds(n,m%n);
}
public static int gcdx(int m,int n)
{
int a;
while(n!=0)
{
a=m%n;
m=n;
n=a;
}
return m;
}
}
相关文章推荐
- 递归与循环比较
- 【JAVASCRIPT】递归与循环的效率比较
- 在论坛中出现的比较难的sql问题:28(循环查询表来实现递归)
- 摘要:我们经常会用到递归函数,但是如果递归深度太大时,往往导致栈溢出。而递归深度往往不太容易把握,所以比较安全一点的做法就是:用循环代替递归。文章最后的原文里面讲了如何用10步实现这个过程,相当精彩。本文翻译了这篇文章,并加了自己的一点注释和理解。
- 递归 循环 比较
- 【算法】递归与while循环的通俗比较
- 递归的效率问题及递归与循环比较
- 数据结构-循环和递归比较(31)
- 递归的效率问题及递归与循环比较
- 递归和循环效率比较
- 【郝斌数据结构自学笔记】53-56_一个函数为什么可以自己调用自己_递归必须满足三个条件_循环和递归的比较
- 递归的效率问题及递归与循环比较
- 递归求和(Recursive)与for循环求和效率问题的简单比较
- C/C++程序——递归和循环实现阶乘,并比较N!与(2N N)的大小
- 递归与循环的开销比较,高精度时间函数
- 循环和递归的优缺点比较
- 二分查找算法的递归、循环实现及其缺陷
- 重新教自己学算法之循环-递归(二)
- 裴波那契数列(循环实现递归)
- 文件夹比较 java递归比较文件夹