第1个回答 2015-02-28
二分法多数用于开方。
通俗点就是,先找到一个大概的区间,把这个区间分成两半,即3个点,原始两个区间点,和中值一个点。
如果中值的平方大于要求的数,则中值为新的区间的右端点,原始的左端点还是左端点!
关系就是 这个算法是初中就学过的!
看下程序 你就明白了!运行一下,每次都有一个输出。你可以看看。
运行环境C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
double? limmin = null;
double? limmax = null;
int num=0;
Console.WriteLine("输入要求开方的数字");
string snum = Console.ReadLine();
try { num =Convert.ToInt32( snum); }
catch { Console.Write("请输入数字"); }
for (int i = 0; i <= num; i++)
{
if (i * i > num)
{
limmin = i - 1;
limmax = i;
break;
}
}
for (int i = 0; i <= 100; i++)
{
if ((((limmin + limmax) / 2) * ((limmin + limmax) / 2)) > num)
{
limmax = (limmin + limmax) / 2;
}
else { limmin = (limmin + limmax) / 2; }
Console.WriteLine("答案位于{0}-{1}",limmin,limmax);
}
Console.ReadLine();
}
}
}本回答被提问者和网友采纳