n
你用and调用函数i
,现在只要i*i
小于n * 10000
你增加你的i
.
如果你的 i*i 大于 n * 10000 你打印 i / 100
例如:您使用 f1(1,1) 调用函数:
1*10000 >= 1*1 --> f1(1,2);
1*10000 >= 2*2 --> f1(1,3);
1*10000 >= 3*3 --> f1(1,4);
....
1*10000 >= 99*99 ->f1(1,100);
1*10000 <= 100*100 --> printf("%f",i/100.0); which gives: 1
编辑:另一个例子,你寻找 8 的平方根: f1(8,1);
8*10000 >= 1*1 --> f1(8,2);
8*10000 >= 2*2 --> f1(8,3);
1*10000 >= 3*3 --> f1(8,4);
....
8*10000 >= 282*282 ->f1(8,283);
8*10000 <= 283*283 --> printf("%f",i/100.0); which gives: 2.83
and 2.83 * 2.83 = 8.0089
编辑:你可能会问为什么 n*10000,这是因为计算误差变小了,例如:如果你在 8 的 sqrt 示例中使用 n*100 和 i/10,你会得到
8*100 <= 29*29 --> 2.9
2.9 * 2.9 = 8.41 which is not good as 2.83 in the other example