昨夜无风无月


私信TA

用户名:dotcpp0612624

访问量:508

签 名:

知其不可奈何而安之若命

等  级
排  名 10487
经  验 1030
参赛次数 0
文章发表 7
年  龄 18
在职情况 学生
学  校 西安电子科技大学
专  业 计算机

  自我简介:

解题思路:拿到题的第一反应是递归,但是该题利用置换思想,在while循环里设置两个变量,一个用于储存上一次循环的返回值,一个用于计算下一个值。
注意事项:对于牛顿迭代公式中的首项并无要求,因此初始化设个1即可
参考代码:

#include<stdio.h>

#include<math.h>

int main()

{

int x = 0;

scanf_s("%d", &x);

float x1 = 99, x2 = 1;               //这里注意设定首项时考虑到循环体里第一步便是交换值,所以要把值赋给x2,同时x1初始化时不能也赋1,否则直接跳过循环

while (fabs(x2 - x1) >= 1e-5)

{

x1 = x2;

x2 = (x1 + x / x1) / 2;

}

printf("%.3f", x2);

return 0;

}


 

0.0分

3 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区