4

我正在寻找有关我的 VBA 脚本的帮助。我一直在试图弄清楚如何使用 mod 功能。

这是我到目前为止所做的:

Function AddOddNumbersWithMod(nr)
    Dim i, sum
    sum = 0
    For i = (IF 1 MOD 2 = 0) to nr step 1
        sum = sum + i <-- (calculate all the odd numbers before nr)
    Next i
End Function

任何建议将不胜感激。

4

4 回答 4

8

为了完整起见,这里是一个无循环版本:

Function SumOfOdds(n As Long) As Long
    'returns sum 1 + 3 + 5 + ... of all odd numbers <= n
    SumOfOdds = Int((n + 1) / 2) ^ 2
End Function

根据这张图:

在此处输入图像描述

L 状的形状包含连续的奇数,并且很好地组合在一起形成完美的正方形。这种漂亮的图案为古希腊人所熟知。

于 2017-02-23T23:42:05.617 回答
2
Function AddOddNumbersWithMod(nr)
    Dim i As Long, sum As Long
    sum = 0
    For i = 1 To nr - 1 Step 1
        If (i Mod 2 <> 0) Then
            sum = sum + i  ' <-- (calculate all the odd numbers before nr)
        End If
    Next i

    AddOddNumbersWithMod = sum
End Function

要在没有 Mod 的情况下添加奇数,您可以使用第 2 步跳过从 1 开始的偶数。

Function AddOddNumbersWithoutMod(nr)
    Dim i As Long, sum As Long
    sum = 0
    For i = 1 To nr - 1 Step 2
        sum = sum + i  ' <-- (calculate all the odd numbers before nr)
    Next i

    AddOddNumbersWithoutMod = sum
End Function
于 2017-02-23T23:17:22.320 回答
2

您希望 i Mod 2 的结果为 1,它显示余数,如果您使用 2 作为除数,您希望余数为 1 以显示奇数。例如 7 mod 2 = 1,这是因为 7 除以 2 等于 3,余数为 1,这就是我们感兴趣的余数。:

Function AddOddNumbersWithMod(nr)
    Dim i As Double, MySum As Double
    For i = 0 To nr
         If i Mod 2 = 1 Then MySum = MySum + i ' <-- (calculate all the odd numbers before nr)
    Next i
    AddOddNumbersWithMod = MySum
End Function
于 2017-02-23T23:20:26.507 回答
0
Sub Oddeven()
  Dim x As Double
  x = InputBox("Please enter the Number: ")
  If x Mod 2 = 0 Then
    MsgBox ("The Number is the Even Number")
  Else
    MsgBox ("The Number is the Odd Number")
  End If
End Sub
于 2018-10-18T13:56:39.473 回答