供参考:
#include<stdio.h>
#include<math.h>
double happy(double a);
double a;
int main()
{
while(scanf("%lf",&a)!=EOF){
printf("%.6lf",happy(a));
}
return 0;
}
double happy(double a)
{
double n = a/2,m = (n+a/n)/2;
while(fabs(n-m) > 1e-6)
{
n = m;
m = (n+a/n)/2;
}
return m;
}
代码挺简单的,不过这个求解过程有点意思。