C语言编程,求看下哪里有问题
2个回答
展开全部
书上公式有误,应该为NG=0.5(LG+N/LG)
其次,LG不应手动输入,而是直接初始化为1。
我们可以进行推导:
我们将M的平方根看作面积为M的正方形的边长,为了得到这个边长,我们先构造一个面积为M的长方形,既然面积确定,我们只需要保存它的一条边的长度,LG默认初始化为1,也就是说这个长方形最开始是1*M的长方形。然后,我们计算NG=0.5(LG+N/LG),其实就是计算这个长方形长和宽的平均值,作为新的长方形的一条边,并且面积保持为M(不难看出,进行这样一次操作以后,这个长方形的长和宽更接近了),以此类推,执行的次数越多,最后长和宽越接近,当长和宽的差距在允许误差内时,我们认为当前储存的这条边的长度就是M的平方根。
再次重申,书上的公式有误
其次,LG不应手动输入,而是直接初始化为1。
我们可以进行推导:
我们将M的平方根看作面积为M的正方形的边长,为了得到这个边长,我们先构造一个面积为M的长方形,既然面积确定,我们只需要保存它的一条边的长度,LG默认初始化为1,也就是说这个长方形最开始是1*M的长方形。然后,我们计算NG=0.5(LG+N/LG),其实就是计算这个长方形长和宽的平均值,作为新的长方形的一条边,并且面积保持为M(不难看出,进行这样一次操作以后,这个长方形的长和宽更接近了),以此类推,执行的次数越多,最后长和宽越接近,当长和宽的差距在允许误差内时,我们认为当前储存的这条边的长度就是M的平方根。
再次重申,书上的公式有误
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询