御笔剑客 发表于 2018-8-30 08:58:12

为什么会输出inf呢?

#include <bits/stdc++.h>
using namespace std;

void func(long long n)
{
    double ans=0;
    for(int i=1;i<=n;++i)ans+=(1.0/(i*i));
    printf("%.5f\n",ans);
}
int main()
{
    long long n;
    while(cin>>n){
      //if(n>=9000)cout<<"1.64482"<<endl;
         func(n);
    }
    return 0;
}


这里如果我输入十万,就会输出inf,是超过double的精度了吗?

BngThea 发表于 2018-8-30 09:04:55

应该是 i * i 的范围溢出

御笔剑客 发表于 2018-8-30 10:39:32

BngThea 发表于 2018-8-30 09:04
应该是 i * i 的范围溢出

{:10_266:}忘了把i设为long long了
页: [1]
查看完整版本: 为什么会输出inf呢?