为什么这个程序只能算到11260呢?
程序如下:
按说long double 可以到到小数点后15位呀!
为什么这个程序到11260,就停止运行了呢??
#include<iostream>
#include<iomanip>
using namespace std;
long double fn(long double a)
{
if(a==1)
{
return 1;
}
else
{
return fn(a-1)+1.0/a;
}
}
void main()
{
long double b;
cout<<"# Cards Overhang "<<endl;
while(cin>>b)
{
if(b==0)
{
cout<<setw(5)<<setprecision(0)<<0;
cout<<setw(10)<<setiosflags(ios::fixed)<<setprecision(3)<<0.0<<endl;
continue;
}
cout<<setw(5)<<setprecision(0)<<b;
cout<<setw(10)<<setiosflags(ios::fixed)<<setprecision(3)<<fn(b)*0.5<<endl;
}
}