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");
}
} 展开
发现代码(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");
}
} 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询