最大公约数不同算法的时间性能比较

程序设计作业之求最大公约数不同算法的时间性能比较

一、题目分析:
因为老师已经给出了四种不同的算法程序,所以该题主要是对不同的算法理解调用并对各算法使用时间进行比较,比较各算法的性能。

二、算法代码
1、辗转相除法

//函数嵌套调用
int divisor(int a, int b)    /*自定义函数求两数的最大公约数*/
{
 int  temp;          /*定义整型变量*/
 if (a < b)             /*通过比较求出两个数中的最大值和最小值*/
 {
  temp = a; a = b; b = temp;
 } /*设置中间变量进行两数交换*/
 while (b != 0)           /*通过循环求两数的余数,直到余数为0*/
 {
  temp = a % b;
  a = b;              /*变量数值交换*/
  b = temp;
 }
 return (a);            /*返回最大公约数到调用函数处*/
}
int multiple(int a, int b)  /*自定义函数求两数的最小公倍数*/
{
 int divisor(int a, int b); /*自定义函数返回值类型*/
 int temp;
 temp = divisor(a, b);  /*再次调用自定义函数,求出最大公约数*/
 return  (a*b / temp); /*返回最小公倍数到主调函数处进行输出*/
}
//函数递归调用
int gcd(int a, int b)
{
 if (a%b == 0)
  return b;
 else
  return gcd(b, a%b);
}

2、穷举法

int divisor1(int a, int b) /*自定义函数求两数的最大公约数*/
{
 int  temp;          /*定义义整型变量*/
 temp = (a > b) ? b : a;    /*采种条件运算表达式求出两个数中的最小值*/
 while (temp > 0)
 {
  if (a%temp == 0 && b%temp == 0) /*只要找到一个数能同时被a,b所整除,则中止循环*/
   break;
  temp--;      /*如不满足if条件则变量自减,直到能被a,b所整除*/
 }
 return (temp); /*返回满足条件的数到主调函数处*/
}
int multiple1(int a, int b) //求最大公倍数
{
 int p, q, temp;
 p = (a > b) ? a : b;   /*求两个数中的最大值*/
 q &#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值