mugaxのなんでも情報局

いろんな分野について発信していきます。

入試問題を解く

■入試問題を解く


'-----------------------------------------------------------------------------
'1から999までの整数のうちで、次の整数はいくつあるか?
'(1) 各位の数の和が7となる整数
'(2) 各位の数の和が7の倍数となる整数
'-----------------------------------------------------------------------------
Sub IntReidai()
    Dim num As Long
    Dim tStr As String
    Dim digitSum As Long
    Dim Q1_Cnt As Long
    Dim Q2_Cnt As Long
    
    Q1_Cnt = 0
    Q2_Cnt = 0
    For num = 1 To 999
    
        '文字列に変換してゼロ埋めした3桁を取得
        tStr = Right("00" & CStr(num), 3)
        
        '各位の和を計算
        digitSum = CLng(Mid(tStr, 1, 1)) + CLng(Mid(tStr, 2, 1)) + CLng(Mid(tStr, 3, 1))
        
        '(1)の場合
        If digitSum = 7 Then
            Q1_Cnt = Q1_Cnt + 1
        End If

        '(2)の場合
        If digitSum Mod 7 = 0 Then
            Q2_Cnt = Q2_Cnt + 1
        End If

    Next

    Debug.Print "(1) : " & Q1_Cnt
    Debug.Print "(2) : " & Q2_Cnt

End Sub