7,789
社区成员
发帖
与我相关
我的任务
分享Option Explicit
'首项为StartNumber的前n项自然数求和的算法
Function NatureSum(ByVal StartNumber As Long, ByVal n As Long) As Double
NatureSum = (2 * StartNumber + n - 1)
NatureSum = NatureSum * n
NatureSum = NatureSum / 2
End Function
Private Sub Command1_Click()
Dim i As Long, j As Long
For i = 1 To 1000
For j = 1 To 1000
If NatureSum(i, j) = 1000 Then
Debug.Print "首项为" & i & "的自然数共有" & j & "个,和为:" & NatureSum(i, j)
Exit For
End If
DoEvents
Next
Next
End SubOption Explicit
'前n项自然数求和
Function NatureSum(ByVal n As Long) As Long
NatureSum = (1 + n) * n / 2
End Function
Private Sub Command1_Click()
Dim i As Long
i = 1
Do While True
Debug.Print "自然数前" & i; "项的和:" & NatureSum(i)
i = i + 1
If NatureSum(i) > 1000 Then Exit Do
Loop
End Sub Private kCtr As String
Private Sub Form_Load()
Dim i As Integer
Dim j As Integer
Dim k As Integer
k = 1000
For i = 2 To 500
If k Mod i = 0 And i Mod 2 <> 0 Then
InitialNumber i, k / i
End If
Next
Debug.Print kCtr
End Sub
Private Sub InitialNumber(ByVal iCtr As Integer, ByVal jCtr As Integer)
Dim i As Integer
Dim j As String
For i = 1 To iCtr
If jCtr - (iCtr - 1) / 2 + i - 1 < 0 Then Exit Sub
j = j & "," & (jCtr - (iCtr - 1) / 2 + i - 1)
Next i
kCtr = kCtr & vbCrLf & j
End SubPrivate Sub Command1_Click()
Cls
Dim i As Integer, s As String, TotalNum As Integer
TotalNum = Val(InputBox("输入总和", , 1000))
For i = 1 To TotalNum / 2
If TotalNum Mod i = 0 Then '个数为奇数
If i Mod 2 = 1 Then
s = TotalNum / i - (i - 1) / 2 & "到" & TotalNum / i + (i - 1) / 2
If TotalNum / i - (i - 1) / 2 > 0 Then Print s
End If
ElseIf TotalNum Mod i = i * 0.5 Then '数字个数为整数
s = TotalNum / i - (i - 1) / 2 & "到" & TotalNum / i + (i - 1) / 2
If TotalNum / i - (i - 1) / 2 > 0 Then Print s
End If
Next
End Sub

嘿嘿……Option Explicit
Private Sub Form_Load()
Dim i As Integer, StartI As Integer, SumI As Long
StartI = Val(InputBox("请输入开始数", , "100"))
For i = 0 To 999
SumI = SumI + StartI + i
Next
Me.Caption = SumI
End Sub