C语言小问题,double型与int型的计算时间比较问题,详细见下

做了杭电的1017发现代码(1)超时了,而代码(2)才60多MS。难道int与double的计算时间相差就那么多么,麻烦详细解释下哈,谢了~代码(1)超时的:#inclu... 做了杭电的1017
发现代码(1)超时了,而代码(2)才60多MS。
难道int与double的计算时间相差就那么多么,麻烦详细解释下哈,谢了~

代码(1)超时的:
#include"stdio.h"
#include"math.h"
int main()
{
int N;
int n,m;
int a,b;
int count;
int i;
int t;
scanf("%d",&N);
while(N--)
{
i=1;
while(scanf("%d%d",&n,&m),n!=0||m!=0)
{
count=0;
for(a=1;a<=n-2;a++)
for(b=a+1;b<=n-1;b++)
{
t=(int)pow(a,2)+(int)pow(b,2)+m;
if(t/(a*b)*(a*b)==t)
count++;
}
printf("Case %d: %d\n",i,count);
i++;
}
if(N!=0)
printf("\n");
}
}

代码(2):
#include"stdio.h"
int main()
{
int N;
int n,m;
int a,b;
int count;
int i;
scanf("%d",&N);
while(N--)
{
i=1;
while(scanf("%d%d",&n,&m),n!=0||m!=0)
{
count=0;
for(a=1;a<=n-2;a++)
for(b=a+1;b<=n-1;b++)
{
if((a*a+b*b+m)%(a*b)==0)
count++;
}
printf("Case %d: %d\n",i,count);
i++;
}
if(N!=0)
printf("\n");
}
}
展开
 我来答
zhangdebo321
2012-02-19 · TA获得超过203个赞
知道小有建树答主
回答量:262
采纳率:100%
帮助的人:198万
展开全部
double涉及到浮点型计算,浮点型计算在计算机处理器中是一个区别于整形计算的ALU计算器。从原理上就比较难计算,具体的可以去看看计组,你看现在浮点型计算才是描述一台计算机性能的指标,整形计算就不是。
追问
(⊙o⊙)…,那同样的计算,用整形计算,和把数据转为double再计算,时间能差多少倍啊(大概)
追答
这个倒没研究过,根据自己的需要选择就行了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式