网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
01月26日漏签0天
c语言吧 关注:801,829贴子:4,375,366
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 5回复贴,共1页
<<返回c语言吧
>0< 加载中...

计算几种求最大公约数算法的时间效率

  • 取消只看楼主
  • 收藏

  • 回复
  • Adolph_Hsing
  • 便当
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include <stdio.h>
#include <time.h>
int ***_factor(int,int); /*分解质因数法*/
int ***_reduction(int,int); /*更相减损算法*/
int ***_continuous(int,int); /*连续整数检测法*/
int ***_Euclidean(int,int); /*欧几里德算法*/
void *testtime(int,int,int *); /*算法所用时间测试*/void show(int,int,int *); /*结果输出*/
int main(void) /*主函数*/
{
int a,b;
int i,start,end,time[4];
printf("please enter two numbers:\n");
scanf("%d,%d",&a,&b);
testtime(a,b,time);
show(a,b,time);
return 0;
}


  • Adolph_Hsing
  • 便当
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
int ***_factor(int a,int b)
{
int i,k=1;
if(b>a)
***_factor(b,a);
if(a%b==0)
return b;
else
{
for(i=2;i<b;i++)
{
while(a%i==0&&b%i==0)
{
k*=i;
a/=i;
b/=i;
}
}
return k;
}
}
int ***_Euclidean(int a,int b)
{
if(!b)
return a;
else ***_Euclidean(b,a%b);
}
int ***_continuous(int a,int b)
{
int i;
i=a<b?a:b;
for(i;i>0;i--)
{
if(a%i==0&&b%i==0)
return i;
}
}
int ***_reduction(int a,int b)
{
if(b>a) ***_reduction(b,a);
else if(a==b) return a;
else ***_reduction(b,a-b);
}


2026-01-26 22:28:42
广告
不感兴趣
开通SVIP免广告
  • Adolph_Hsing
  • 便当
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
void testtime(int a,int b,int *time)
{
int i,start,end;
i=10000;
start=clock(); /*以下测算***_factor(a,b)的时间*/
while(i>0)
{
***_factor(a,b); i--;
}
end=clock();
time[0]=end-start;
i=10000;
start=clock(); /*以下测算***_Euclidean(a,b)的时间*/
while(i>0)
{
***_Euclidean(a,b); i--;
}
end=clock();
time[1]=end-start;
i=10000;
start=clock(); /*以下测算***_continous(a,b)的时间*/
while(i>0)
{
***_continuous(a,b); i--;
}
end=clock();
time[2]=end-start;
i=10000;
start=clock(); /*以下测算***_reduction(a,b)的时间*/
while(i>0)
{
***_reduction(a,b); i--;
}
end=clock();
time[3]=end-start;
return time;
}


  • Adolph_Hsing
  • 便当
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
void show(int a,int b,int *time)
{
printf("\n\t***************************************************\n");
printf("\n\t*--------------几种求最小公约数的方法-------------*\n");
printf("\n\t*-------------------------------------------------*\n");
printf("\n\t*- 分解质因数法:%-8d- 运行时间:%-10d-*\n",***_factor(a,b),time[0]);
printf("\n\t*- 欧几里德算法:%-8d- 运行时间:%-10d-*\n",***_Euclidean(a,b),time[1]);
printf("\n\t*-连续整数检测法:%-8d- 运行时间:%-10d-*\n",***_continuous(a,b),time[2]);
printf("\n\t*- 更相减损算法:%-8d- 运行时间:%-10d-*\n",***_reduction(a,b),time[3]);
printf("\n\t*-------------------------------------------------*\n");
printf("\n\t*--------------注以上延迟为一万倍所得-------------*\n");
printf("\n\t***************************************************\n\n");
}


  • Adolph_Hsing
  • 便当
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
注:以上被和谐的“***”为“***”。


  • Adolph_Hsing
  • 便当
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
又被和谐了,额!
再注:以上被和谐的"***"可以任意起名,如:"hsing",但名字必须统一。
show()函数里面的一长串*********************为格式控制,不需要该。


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 5回复贴,共1页
<<返回c语言吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示