总结: 本题难度不大,但是由于长度的限制,VLOOKUP,MATCH函数便无用武之地,所以只能另寻思路。
如上图所示,函数稳中有升,平台部分可以使用INT()函数解决,上升部分按趋势判断,类似指数函数或幂函数。 由于5^(1/15)=1.113264,构造函数如下: y=int(a^x+b) y=int(a^x/b) y=int(1+x^a/b) a,b系数待定。 编程序求解如下: Sub Solve() Dim F1, F2(14) As Boolean, A As Single, B As Single, I As Byte, match As Boolean F1 = Array(1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5) For A = 1 To 2 Step 0.01 For B = 0 To 2 Step 0.01 match = True For I = 0 To 14 F2(I) = Int(A ^ (I + 1) + B) = F1(I) If F2(I) = False Then match = False: Exit For Next If match = True Then Debug.Print "=INT(" & Round(A, 2) & "^A1+" & Round(B, 2) & ")" Next Next For A = 1 To 2 Step 0.01 For B = 0.01 To 2 Step 0.01 match = True For I = 0 To 14 F2(I) = Int(A ^ (I + 1) / B) = F1(I) If F2(I) = False Then match = False: Exit For Next If match = True Then Debug.Print "=INT(" & Round(A, 2) & "^A1/" & Round(B, 2) & ")" Next Next For A = 1 To 2 Step 0.01 For B = 1 To 100 match = True For I = 0 To 14 F2(I) = Int((I + 1) ^ A / B + 1) = F1(I) If F2(I) = False Then match = False: Exit For Next If match = True Then Debug.Print "=INT(1+A1^" & Round(A, 2) & "/" & Round(B, 2) & ")" Next Next End Sub
返回: =INT(1.11^A1+0.22) =INT(1.11^A1+0.23) =INT(1.11^A1+0.24) =INT(1.11^A1+0.25) =INT(1.11^A1+0.26) =INT(1.11^A1+0.27) =INT(1.11^A1+0.28) =INT(1.11^A1+0.29) =INT(1.11^A1+0.3) =INT(1.11^A1+0.31) =INT(1.12^A1+0.03) =INT(1.12^A1+0.04) =INT(1.12^A1+0.05) =INT(1.12^A1+0.06) =INT(1.12^A1+0.07) =INT(1.12^A1+0.08) =INT(1.12^A1+0.09) =INT(1.12^A1+0.1) =INT(1.1^A1/0.81) =INT(1.1^A1/0.82) =INT(1.1^A1/0.83) =INT(1.11^A1/0.88) =INT(1.11^A1/0.89) =INT(1.11^A1/0.9) =INT(1.11^A1/0.91) =INT(1.11^A1/0.92) =INT(1.11^A1/0.93) =INT(1.12^A1/0.98) =INT(1+A1^1.4/11) =INT(1+A1^1.43/12) =INT(1+A1^1.44/12) =INT(1+A1^1.46/13) =INT(1+A1^1.47/13) =INT(1+A1^1.49/14) =INT(1+A1^1.5/14) =INT(1+A1^1.52/15) =INT(1+A1^1.53/15) =INT(1+A1^1.55/16) 找出其中比较短的,如上红色标识 =INT(1.11^A1/0.9) 也可写为: =INT(1.1*1.11^A1) 长度一样。
|