问题描述
进行数学运算是计算机的主要能力,利用计算机的重复计算能力可以帮助人们求解一些十分复杂的数学运算,比如高次方程、求根,求平方等。根号运算是数学的基本运算,对于无理数的求解,我们可以使用两边取值,不断逼近的方法进行求解。现要求你编程实现根号3的求解。
输入格式
无输入
输出格式
输出根号3的求解结果
样例输入
无
样例输出
无
数据规模和约定
初始边界值分别为:low=1.0,high=2.0,更新边界值使用平均数,并要求循环20次后输出结果。
思路
理解题目说的意思是关键,然后就没啥难的了,模拟就行了。
但是不知道为什么评测系统只认保留5位小数的,其他的保留位数都是错了…
代码:
#include <stdio.h>
#include <math.h>
int main ()
{
double low=1.0;
double high=2.0;
double n=3.0;
double average = 0,sum;
int x;
for(x=0; x<20; x++)
{
average=(low+high)/2;
sum=average*average;
if(sum>n)
high=average;
else
low=average;
}
printf("%.5f",average);
return 0;
}
答案:1.73205