首页 > 留学知识库

问题: 小学数学题

只添一些加号或减号,使下面算式成立(个别数中间可不加符号,合为一个两位数使用)
9 8 7 6 5 4 3 2 1=20

解答:

98+7-65+4-3-21=20
98-7-65-4-3+2-1=20
9-8-7-6+5-4+32-1=20
9-8-7-6-5+4+32+1=20

9至1之间有8个空档,空档可以放“+、-”,或什么也不放。
一共有3^8=6561种组合

下面我用Excel的宏写了一个程序,解出=20的只有四个解。我这是授人以鱼和渔,呵呵。

Sub compute()
Dim i1, i2, i3, i4, i5, i6, i7, i8 As Integer
Dim j As Integer

Dim s(3, 3, 3, 3, 3, 3, 3, 3) As String
Dim a(9) As String

Dim fuhao As String

a(1) = "9"
a(2) = "8"
a(3) = "7"
a(4) = "6"
a(5) = "5"
a(6) = "4"
a(7) = "3"
a(8) = "2"
a(9) = "1"

Worksheets("Sheet1").Cells(3, 1).Value = 0
For i1 = 1 To 3
For i2 = 1 To 3
For i3 = 1 To 3
For i4 = 1 To 3
For i5 = 1 To 3
For i6 = 1 To 3
For i7 = 1 To 3
For i8 = 1 To 3
s(i1, i2, i3, i4, i5, i6, i7, i8) = a(1)
Select Case i1
Case 1
fuhao = ""
Case 2
fuhao = "+"
Case 3
fuhao = "-"
End Select
s(i1, i2, i3, i4, i5, i6, i7, i8) = s(i1, i2, i3, i4, i5, i6, i7, i8) & fuhao & a(2)
Select Case i2
Case 1
fuhao = ""
Case 2
fuhao = "+"
Case 3
fuhao = "-"
End Select
s(i1, i2, i3, i4, i5, i6, i7, i8) = s(i1, i2, i3, i4, i5, i6, i7, i8) & fuhao & a(3)
Select Case i3
Case 1
fuhao = ""
Case 2
fuhao = "+"
Case 3
fuhao = "-"
End Select
s(i1, i2, i3, i4, i5, i6, i7, i8) = s(i1, i2, i3, i4, i5, i6, i7, i8) & fuhao & a(4)
Select Case i4
Case 1
fuhao = ""
Case 2
fuhao = "+"
Case 3
fuhao = "-"
End Select
s(i1, i2, i3, i4, i5, i6, i7, i8) = s(i1, i2, i3, i4, i5, i6, i7, i8) & fuhao & a(5)
Select Case i5
Case 1
fuhao = ""
Case 2
fuhao = "+"
Case 3
fuhao = "-"
End Select
s(i1, i2, i3, i4, i5, i6, i7, i8) = s(i1, i2, i3, i4, i5, i6, i7, i8) & fuhao & a(6)
Select Case i6
Case 1
fuhao = ""
Case 2
fuhao = "+"
Case 3
fuhao = "-"
End Select
s(i1, i2, i3, i4, i5, i6, i7, i8) = s(i1, i2, i3, i4, i5, i6, i7, i8) & fuhao & a(7)
Select Case i7
Case 1
fuhao = ""
Case 2
fuhao = "+"
Case 3
fuhao = "-"
End Select
s(i1, i2, i3, i4, i5, i6, i7, i8) = s(i1, i2, i3, i4, i5, i6, i7, i8) & fuhao & a(8)
Select Case i8
Case 1
fuhao = ""
Case 2
fuhao = "+"
Case 3
fuhao = "-"
End Select
s(i1, i2, i3, i4, i5, i6, i7, i8) = s(i1, i2, i3, i4, i5, i6, i7, i8) & fuhao & a(9)
Worksheets("Sheet1").Cells(1, 1).Value = "=" & s(i1, i2, i3, i4, i5, i6, i7, i8)
Worksheets("Sheet1").Cells(2, 1).Value = s(i1, i2, i3, i4, i5, i6, i7, i8)
Worksheets("Sheet1").Cells(3, 1).Value = Worksheets("Sheet1").Cells(3, 1).Value + 1
If CLng(Worksheets("Sheet1").Cells(1, 1).Value) = 20 Then MsgBox ("I got it!")
Next
Next
Next
Next
Next
Next
Next
Next
End Sub