1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
float foo(float n) { float f1=0.0, f2=n, fm=(f1+f2)/2.0,differ=1.0; while (differ > 0.0001) { if (fm*fm>n) { f2=fm; differ=fm*fm-n; } else { f1=fm; differ=n-fm*fm; } fm=(f1+f2)/2.0; } return fm; } int main() { float x = 2.0; printf("%f", foo(x)); }
1
1.414246