|
发表于 2019-2-18 14:52:43
|
显示全部楼层
用了三种方法做这个题,每一次比上一次都会快一点,因为题目很简单,所以就想简单的题目怎么做出更好的算法,所以就尝试的改进,事实上第二个代码就比第一个快了一半多,第三个比第一个快了近三倍,但是我感觉应该会有更好的算法,只是我没想到,接下来贴上我的代码(在题目的基础上加了两个0,不然clock算出来没数字)
第一个:clock_t begin,end;
int i,sum=0;
begin=clock();
for(i;i<1000000;i++){
if(i%3==0||i%5==0) sum+=i;
}
end=clock();
printf("%d time=%d",sum,end-begin);
运行时间time=40多
第二个:clock_t begin,end;
int i,sum=0;
begin=clock();
for(i=3;i<1000000;i+=3){
if(i%3==0&&i%5!=0) sum+=i;
}
for(i=0;i<1000000;i+=5){
sum+=i;
}
end=clock();
printf("%d time=%d",sum,end-begin);
运行时间time=20左右
第三个:clock_t begin,end;
int i,sum=0;
begin=clock();
for(i=3;i<1000000;i+=3){
if(i%5==0) continue;
else if(i%3==0) sum+=i;
}
for(i=0;i<1000000;i+=5){
sum+=i;
}
end=clock();
printf("%d time=%d",sum,end-begin);
运行时间time=15左右 |
|