一共有99个1,98个2,。。1个99所以
1*99+2*98+3*97...+98*2+99*1=1*(100-1)+2*(100-2)+..99*(100-1)=1*100-1*1+2*100-2*2+3*100-3*3+...99*100-99*99=100(1+2+3..+99)-(1*1+2*2..99*99)=100*5050-(2*99+1)(99+1)99*(1/6) =505000-328350=176650
不知这么算对不。
Const MAX = 5
Private Sub Command1_Click()
Dim n As Long, m As Long
Dim s As String
Dim k As Long
m = 0
For n = 1 To MAX
If n <> 1 Then
s = s & "("
End If
For k = 1 To n
If k <> n Then
s = s & Trim(Str(k)) & "+"
Else
If k = 1 Then
s = s & Trim(Str(k)) & "+"
Else
s = s & Trim(Str(k))
End If
End If
Next
If n <> MAX Then
If InStr(s, "(") <> 0 Then s = s & ")+"
Else
If InStr(s, "(") <> 0 Then s = s & ")"
End If
m = m + n * (n + 1) / 2
Next n
Debug.Print s & "=" & m
End Sub
把 max=5 换成100就可以
a1=1....an=n(n+1)/2=C2/n+1
C2/2+C2/3+C2/4+...+C2/n+1=C3/n+2
原式=C3/101=166650
这种问题 用排列组合公式很容易解决 是个高中生吧?