二分法猜价格

来源:互联网 发布:集结号 知乎 编辑:程序博客网 时间:2024/04/28 00:59

假设商品价格在0-999之间,输入一个正确的价格.

方法1:从1开始从上逐进,直到与正确的相等

方法2:二分法,每次选取中间值,直至正确的值.

说明:二分法本质上分治法的一种的方法.

'//程序用逐步法猜价格'//假设价格都是整数,没有小数Sub GP_Step()Dim Price&, i&, Guess&, Step&'   正确价格,变量,猜想值Dim Min&, Max&'   最小值,最大值Min = 1: Max = 999With Sheet1Price = .Cells(3, 1)For i = Min To Max  Step = Step + 1   Guess = i   If Guess = Price Then Exit ForNext i.Cells(2, 5) = Guess.Cells(2, 4) = StepEnd WithEnd Sub'//程序用二分法猜价格'//假设价格都是整数,没有小数Sub GP_Binary()Dim Price&, i&, Guess&, Step&'   正确价格,变量,猜想值Dim Min&, Max&, ex#'   最小值,最大值,精度ex = 0.1Min = 1: Max = 999With Sheet1Price = .Cells(3, 1)Guess = Round((Min + Max) / 2, 0)DoStep = Step + 1If Guess > Price Then   Max = GuessElseIf Guess < Price Then   Min = GuessEnd If   Guess = Round((Min + Max) / 2, 0)Loop Until Guess = Price.Cells(5, 5) = Guess.Cells(5, 4) = StepEnd WithEnd Sub


 

0 0