关闭

二分法猜价格

151人阅读 评论(0) 收藏 举报
分类:

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

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

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

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

'//程序用逐步法猜价格
'//假设价格都是整数,没有小数
Sub GP_Step()
Dim Price&, i&, Guess&, Step&
'   正确价格,变量,猜想值
Dim Min&, Max&
'   最小值,最大值
Min = 1: Max = 999
With Sheet1
Price = .Cells(3, 1)
For i = Min To Max
  Step = Step + 1
   Guess = i
   If Guess = Price Then Exit For
Next i
.Cells(2, 5) = Guess
.Cells(2, 4) = Step
End With
End Sub

'//程序用二分法猜价格
'//假设价格都是整数,没有小数
Sub GP_Binary()
Dim Price&, i&, Guess&, Step&
'   正确价格,变量,猜想值
Dim Min&, Max&, ex#
'   最小值,最大值,精度
ex = 0.1
Min = 1: Max = 999
With Sheet1
Price = .Cells(3, 1)
Guess = Round((Min + Max) / 2, 0)
Do
Step = Step + 1
If Guess > Price Then
   Max = Guess
ElseIf Guess < Price Then
   Min = Guess
End If
   Guess = Round((Min + Max) / 2, 0)
Loop Until Guess = Price
.Cells(5, 5) = Guess
.Cells(5, 4) = Step
End With
End Sub


 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1766次
    • 积分:49
    • 等级:
    • 排名:千里之外
    • 原创:1篇
    • 转载:9篇
    • 译文:0篇
    • 评论:0条
    文章存档