根据递归来推导:
fun(3)==1.0/3+1.0/fun(2)
==1.0/3+1.0/(1.0/2+1.0/fun(1)) //fun(1)是已经知道的,是1
==1.0/3+1.0/(1.0/2+1.0/1.0)
==1.0/3+1.0/(3.0/2)
==1.0/3+2.0/3
==1.0
所以他就是等于1,当然就是输出1.
#include
double fun(int n)
{
double f;
if(n==1) f=1.0;
else
f=1.0/n+1.0/fun(n-1);
return f;
}
int main()
{
printf("%lf\n",fun(3));
return 0;
}
应设成浮点型就对了