gpt4 book ai didi

c - 为什么使用的数据类型为 'long long int' 与 'int' 时运行时间不同?

转载 作者:太空宇宙 更新时间:2023-11-04 06:10:11 25 4
gpt4 key购买 nike

<分区>

我正在编写一个程序,涉及的输入范围高达 100 万,当我使用数据类型“int”来处理我的值时,运行时间非常非常长,程序从未完全执行过,所以我不是能够记下运行时间。之前的代码;

#include<stdio.h>
int main()
{
int n,m,i,maxt=0,maxn;

for(n=2;n<=1000000;n++){
m=n;
i=0;
for(i=0;m!=1;i++){
if(m%2==0)
m=m/2;
else
m=(3*m+1);
}

if(i>maxt){
maxt=i;
maxn=n;
}
}

printf("%d%d",maxn,maxt);

return 0;
}

但后来在处理代码时,我将数据类型从“int”更改为“long long int”,令人惊讶的是运行时间急剧减少(毫秒),谁能解释这背后的原因是什么?之后的代码;

#include<stdio.h>
int main()
{
long long int n,m,i,maxt=0,maxn;

for(n=2;n<=1000000;n++){
m=n;
i=0;
for(i=0;m!=1;i++){
if(m%2==0)
m=m/2;
else
m=(3*m+1);
}

if(i>maxt){
maxt=i;
maxn=n;
}
}

printf("%lld%lld",maxn,maxt);

return 0;
}

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