gpt4 book ai didi

c++ - 为什么这两个代码的运行时间相差这么长?

转载 作者:行者123 更新时间:2023-11-28 02:54:42 25 4
gpt4 key购买 nike

对于两个代码 l 初始都是 1 ,除了数组之外的所有变量都是 long long ,数组是大小为 N 的全局 int。N 是 10^6 的量级。但是代码 1 超过了 5 秒的时间限制,但代码 2 以毫秒为单位运行。唯一的区别是在最后一行。 a,b,c为小于50的整数变量。

使用的编译器:- g++

测试用例:-3000000 50 50 50 1 (N,a,b,c,l)

代码 1:-

for(i=1;i<N;i++)
{
j=l;
k=(j*j)%1000000;
k=(a*k)%1000000;
j=(b*j)%1000000;
l=(j+k+c)%1000000;


x=(int)l;
ar[i]=x;
}

代码 2:-

for(i=1;i<N;i++)
{
j=l;
k=(j*j)%1000000;
k=(a*k)%1000000;
j=(b*j)%1000000;
l=(j+k+c)%1000000;


x=(int)l;
ar[i]=1;
}

最佳答案

这是编译器的优化。可能第二个代码只是替换为

for(i=1;i<N;i++)
{
ar[i]=1;
}

关于c++ - 为什么这两个代码的运行时间相差这么长?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22269263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com