有感
今天学习了MIT的SICP课第一节Lisp语言,教授对平方根的求解、拆解讲的灰常好,一目了然。在这里将程序设计思路、封装思路用C++记录下。
主题
求平方根算法如下:
假设有数字number
1、先用value = 1试试,看看value*value的结果符不符合要求
2、value*value不符合要求的话,再用新的值newValue = (value + number/value)/2试试
3、循环执行步骤2,直到符合要求
符合的要求可以自己定,比如:x*x和number差距小于0.0000001就算符合。
根据以上我们可知主要有两个步骤:
try(x)
{
if(符合要求)
{
return x;
}
else
{
继续 try((x + number / value) / 2);
直到符合为止;
}
}