How to write 6 different functions that accept 5 or 7 and return the other number, without using if,switch in VB.NET

1 Answer

0 votes
Imports System
				
Module FlipNumbers

    '
    ' Six different functions that accept 5 or 7
    ' and return the other number, without using If or Select Case.
    '

    ' 1. Arithmetic sum trick: 5 + 7 = 12
    Function FlipSum(x As Integer) As Integer
        Return 12 - x
    End Function

    ' 2. Product trick: 5 * 7 = 35
    Function FlipProduct(x As Integer) As Integer
        Return 35 \ x
    End Function

    ' 3. XOR trick: 5 Xor 7 = 2
    '    x Xor 2 flips 5 ↔ 7
    Function FlipXor(x As Integer) As Integer
        Return x Xor 2
    End Function

    ' 4. Modulo-based trick using divisibility:
    '    x Mod 7 = 0 → x is 7
    '    x Mod 5 = 0 → x is 5
    '    Boolean → Integer via CInt()
    Function FlipMod(x As Integer) As Integer
        Return 5 * CInt(x Mod 7 = 0) +
               7 * CInt(x Mod 5 = 0)
    End Function

    ' 5. Absolute-value trick: |x - 12| flips 5 ↔ 7
    Function FlipAbs(x As Integer) As Integer
        Return Math.Abs(x - 12)
    End Function

    ' 6. Array lookup using arithmetic index:
    '    For x = 5 → (5 - 5) \ 2 = 0 → table(0) = 7
    '    For x = 7 → (7 - 5) \ 2 = 1 → table(1) = 5
    Function FlipArray(x As Integer) As Integer
        Dim table() As Integer = {7, 5}
        Dim index As Integer = (x - 5) \ 2
        Return table(index)
    End Function

    Sub Main()

        Console.WriteLine("flip_sum(5) = " & FlipSum(5))
        Console.WriteLine("flip_sum(7) = " & FlipSum(7))
        Console.WriteLine()

        Console.WriteLine("flip_product(5) = " & FlipProduct(5))
        Console.WriteLine("flip_product(7) = " & FlipProduct(7))
        Console.WriteLine()

        Console.WriteLine("flip_xor(5) = " & FlipXor(5))
        Console.WriteLine("flip_xor(7) = " & FlipXor(7))
        Console.WriteLine()

        Console.WriteLine("flip_mod(5) = " & FlipMod(5))
        Console.WriteLine("flip_mod(7) = " & FlipMod(7))
        Console.WriteLine()

        Console.WriteLine("flip_abs(5) = " & FlipAbs(5))
        Console.WriteLine("flip_abs(7) = " & FlipAbs(7))
        Console.WriteLine()

        Console.WriteLine("flip_array(5) = " & FlipArray(5))
        Console.WriteLine("flip_array(7) = " & FlipArray(7))

    End Sub

End Module


' OUTPUT:
'
' flip_sum(5) = 7
' flip_sum(7) = 5
'
' flip_product(5) = 7
' flip_product(7) = 5
'
' flip_xor(5) = 7
' flip_xor(7) = 5
'
' flip_mod(5) = 7
' flip_mod(7) = 5
'
' flip_abs(5) = 7
' flip_abs(7) = 5
'
' flip_array(5) = 7
' flip_array(7) = 5
'

 



answered Mar 31 by avibootz

Related questions

...