n=65536 m=655360就错了,要求n<m<10^6;
int main(void)
{
int n,m;
double sum=0;
scanf("%d %d",&n,&m);
for(int i = n; i <= m;i++)
{
sum += 1.0/(i * i);
}
printf("%.5f",sum);
return 0;
}
5 个解决方案
#1
既然是大数,你直接用int肯定不够了,int最大才21亿,才10^10左右,10^6的平方显然不行了
试试
sum += 1.0/((double)i * (double)i);
试试
sum += 1.0/((double)i * (double)i);
#2
655360的平方是多少??考虑int的取值范围,是不是有溢出的可能。
用int64吧
用int64吧
#3
将i定义为double类型的
#4
唉,都忘了这个类型了,ok了
#5
To coding_hello:晕,分给错了,对不起
#1
既然是大数,你直接用int肯定不够了,int最大才21亿,才10^10左右,10^6的平方显然不行了
试试
sum += 1.0/((double)i * (double)i);
试试
sum += 1.0/((double)i * (double)i);
#2
655360的平方是多少??考虑int的取值范围,是不是有溢出的可能。
用int64吧
用int64吧
#3
将i定义为double类型的
#4
唉,都忘了这个类型了,ok了
#5
To coding_hello:晕,分给错了,对不起