c语言怎么提高运行速度

c语言怎么提高运行速度,第1张

这个程序有多组输入,而这多组输入的运算都是相同的,所以可以利用数组f之前计算过的信毕搜息。

在你的code里做的修改,如果有疑问,欢迎交流

#include<stdio.h>

int main()

{

int a,b,n,c

int pre_max_idx = 2

int f[100]

f[1]=1

f[2]=1

while(scanf("%d%d%d",&a,&b,&n)!=EOF)

{

        if(n<=pre_max_idx){//如果之前计算过就直接返回

     汪慎       printf("%d\n", f[n])

         困数敬   continue

        }

if(n<=0)

continue

for(c=n+1,n=pre_max_idx+1n!=cn++)//这里从pre_max_idx开始

f[n]=(a*f[n-1]+b*f[n-2])&7

pre_max_idx = n-1//修改当前的最大

printf("%d\n",f[n-1]) 

}

return 0

}

最主告搏要睁友液的措施就是改进算法,如控制循环次数;多使用中间结果,减少运算次数等。

此外还可以从程序设计技术角度采取一些措施:如尽量减少值传递,多用引用来传递参数;减少减少除法运算;多用悉物局部变量等。

单独从代码上看旁嫌,没多少可改的,唯一可档启闹以增加效率的地方是

for(k=2k<=sqrt(n)k++)

{

if(n%k==0)

{loop=1break}

}

在这里加一个break,避免多余的运算

不过看你这个程序的功能,似乎是求2000000以内的素数,如果是的话,行罩可以用素数筛

比这个快很多


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12215011.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存